Pass instance variable from one method to another controller

Hi Everybody!

I m back.
I have a non-model form (I am using active_record_no_table gem for
validations). When the user fills that form and submits it, I want to
process the form and then display it back to the user just like the
“show” method in a scaffold.

Now, since this is a non-model form, I need to pass the instance
variable from “create” method to “show” method.

I know that rather than redirecting to show method, I can display data
back to the user using a partial and passing a locals hash to the
partial.
But I don’t want to do this. The reason is there is a link on the “show”
view that allows the user to print the show view in PDF format and I
want to do the same with the link…passing the local variable to the
show action.

How can I do this?

Please advise?

Many Thanks!

Rails L. wrote:

Hi Everybody!

I m back.
I have a non-model form (I am using active_record_no_table gem for
validations). When the user fills that form and submits it, I want to
process the form and then display it back to the user just like the
“show” method in a scaffold.

Now, since this is a non-model form, I need to pass the instance
variable from “create” method to “show” method.

I know that rather than redirecting to show method, I can display data
back to the user using a partial and passing a locals hash to the
partial.
But I don’t want to do this. The reason is there is a link on the “show”
view that allows the user to print the show view in PDF format and I
want to do the same with the link…passing the local variable to the
show action.

How can I do this?

Put in a link_to parameter. Remember that link_to can take more options
than :controller and :action.

Please advise?

Many Thanks!

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Hi Marnen,

How can I pass the the whole object in link_to?

For instance, if I have a child object with first_name and last_name as
attributes, then I need to pass the child object as a hash.

Right now, what is working for me is this:
<%= link_to ‘Create PDF’, { :controller => ‘children’, :action =>
‘show’, :format => :pdf, :first_name => @child.first_name, :last_name =>
@child.last_name } %>

And, I want to do something like this (but it’s not working):
<%= link_to ‘Create PDF’, { :controller => ‘children’, :action =>
‘show’, :format => :pdf, :child => @child } %>

Rails L. wrote:

Hi Marnen,

How can I pass the the whole object in link_to?

You can’t.

For instance, if I have a child object with first_name and last_name as
attributes, then I need to pass the child object as a hash.

No. Pass them as two separate parameters (as I guess you’re currently
doing), munge them together into one string (not recommended), or pass
an object ID if you can query the DB for it.

Right now, what is working for me is this:
<%= link_to ‘Create PDF’, { :controller => ‘children’, :action =>
‘show’, :format => :pdf, :first_name => @child.first_name, :last_name =>
@child.last_name } %>

And, I want to do something like this (but it’s not working):
<%= link_to ‘Create PDF’, { :controller => ‘children’, :action =>
‘show’, :format => :pdf, :child => @child } %>

Hi Marnen,

Thanks for confirming that.
Many Thanks!