On 21 February 2011 08:50, Jim Ruther Nill <jvn...@gmail.com> wrote: > > > On Mon, Feb 21, 2011 at 4:34 PM, Colin Law <clan...@googlemail.com> wrote: >> >> On 21 February 2011 07:56, Jim Ruther Nill <jvn...@gmail.com> wrote: >> > >> > >> > On Mon, Feb 21, 2011 at 3:38 PM, Colin Law <clan...@googlemail.com> >> > wrote: >> >> >> >> On 21 February 2011 03:34, James allan To <li...@ruby-forum.com> wrote: >> >> > Hi I would just like to ask if someone can point me to the right >> >> > direction. I have an order page which will need to be split into 3 >> >> > views >> >> > before saving say in controller: >> >> > >> >> > def new >> >> > @order = Order.new >> >> > end >> >> > >> >> > def process_new >> >> > @order = Order.new(params[:order]) >> >> > #do validation for new >> >> > # redirect to no_of_attendees >> >> > end >> >> > >> >> > def no_of_attendees >> >> > @order = Order.new(params[:order]) >> >> > end >> >> > >> >> > def process_no_of_attendees >> >> > @order = Order.new(params[:order]) >> >> > #do validation >> >> > #redirect to save page >> >> > end >> >> > >> >> > Question: Is there aright way of doing this (carry params values >> >> > between >> >> > views) or should I just place the data from new in session as we move >> >> > to >> >> > forward to the third page create a hash from session and save in >> >> > model? >> >> >> >> If all you are passing back each time is the latest data for the >> >> order, so you can do Order.new(params[:order]) as you have shown, then >> >> there is no reason to complicate things by using the session. >> >> >> > >> > this is fine as long as you place the attributes in the previous step in >> > a >> > hidden field so it will not be lost >> > when you submit the form. >> >> It appears from the OP that even this is not necessary, as all the >> required data is in params[:order]. >> > > even if all the required data is in params[:order], he still needs to set > the attributes > filled up in the last step as hidden fields. > for example (let's use the OP's actions) > STEP1. #new action > this step asks for order's name, so we'd have params[:order] = {:name => > name} available for next step. > STEP2 #process_new action > this step asks for order's no_of_attendees. so we'd have params[:order] = > {:no_of_attendees => no_of_attendees} available for next step. > STEP3 #process_no_of_attendees > in this action, we already lost the name attribute for order since we didn't > add a hidden field for this attribute. > so eventhough we use params[:order] in all the actions, it's still needed to > add hidden_field tags for attributes > filled up in the previous actions.
I see what you mean now, I was assuming the previous data would still be visible, but I take your point, it may not be. Colin > >> >> > >> >> >> >> You might like to consider whether the controller (and maybe the view) >> >> would be simplified by combining the actions (and maybe views) and >> >> passing up and back a phase value to indicate which phase of the >> >> operation is current. >> >> To do this would require a hidden field as you have pointed out. >> >> Colin >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Talk" group. >> To post to this group, send email to rubyonrails-talk@googlegroups.com. >> To unsubscribe from this group, send email to >> rubyonrails-talk+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/rubyonrails-talk?hl=en. >> > > > > -- > ------------------------------------------------------------- > visit my blog at http://jimlabs.heroku.com > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.