link_to send parameters along with the url and grab them on target page

后端 未结 2 1213
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-04 11:24

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 ad

相关标签:
2条回答
  • 2020-12-04 12:00

    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>
    
    0 讨论(0)
  • 2020-12-04 12:10

    Here's a more rails-y way of doing it.

    <%= link_to 'Link Text', 
    {controller: 'controller/name', action: 'action_name', query: params[:query]},
    method: 'get', 
    :class=>'link_styling' %>
    

    You need to reference your params in the hash defining the link. It also needs to be a GET method. Styling is optional of course.

    This should really be here too: http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

    0 讨论(0)
提交回复
热议问题