views:

90

answers:

1

How can i have a link on a page that takes the user to another URL and passes along a parameter and on the target url how can we pick up that parameter.

usually I add links like following:

 <%= link_to "Add Product", '/pages/product' %>

But how can I send parameters along with this url? Can I pick them in the target action by using params[:parm_name]

+2  A: 

Just add them to link:

<%= link_to "Add Product", '/pages/product?param1=value1&param2=value2' %>

and in controller:

param1 = params[:param1] # "value1"
param2 = params[:param2] # "value2"

If you use helper methods for routes (for example company_path), then you can add hash of params, so this two should be similar:

<%= link_to "Add Product", new_product_path(:param1 => "value1", :param2 => "value2") %>
<%= link_to "Add Product", "/products/new?param1=value1&param2=value2" %>

From documentation:

link_to "Comment wall", profile_path(@profile, :anchor => "wall")
# => <a href="/profiles/1#wall">Comment wall</a>

link_to "Ruby on Rails search", :controller => "searches", :query => "ruby on rails"
# => <a href="/searches?query=ruby+on+rails">Ruby on Rails search</a>

link_to "Nonsense search", searches_path(:foo => "bar", :baz => "quux")
# => <a href="/searches?foo=bar&amp;baz=quux">Nonsense search</a>
MBO
oh...i thought there would be a more railsy way to do it
Omnipresent
@Omnipresent there is rails way, but you should use rails helper methods for paths/urls, not type address by hand
MBO
there is. define :controller, :action and all other params in a single hash.
Eimantas