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.

Reply via email to