问题
This should be simple, but I can't seem to find an easy answer.
How can I pass param values from the current request into a redirect_to call? I have some form values I'd like to pass into the query string of a GET redirect
I'd like to do something like:
redirect_to @thing, :foo => params[:foo]
and get sent to:
http://things/4?[foo][key1]=val1&[foo][key2]=val2
Thanks!
Also - how could this be handled for a redirect_to :back?
redirect_to :back, :foo => params[:foo]
回答1:
The 'Record' form of redirect_to uses the second argument only for the response status. You'll have to use another form of redirect_to, like the 'String' form. e.g.:
redirect_to thing_path(@thing, :foo => params[:foo])
which will work for nested params[:foo]
params like you mentioned. Or, as Drew commented below, you can use polymorphic_url (or _path):
redirect_to polymorphic_path(@thing, :foo => params[:foo])
回答2:
To add to Jordan's answer:
If you don't know what type of object @thing
might be, you can use the universal polymorphic_url
method. This is the method that is called internally when you pass in an object to redirect_to
anyway.
来源:https://stackoverflow.com/questions/715179/passing-param-values-to-redirect-to-as-querystring-in-rails