Link_to отправить параметры вместе с URL и захватить их на целевой странице

Как я могу получить ссылку на странице, которая переводит пользователя на другой URL-адрес и передает по параметру и целевому URL-адресу, как мы можем выбрать этот параметр.

Обычно я добавляю ссылки, как показано ниже:

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

Но как я могу отправить параметры вместе с этим URL-адресом? Могу ли я выбрать их в целевом действии с помощью using params[:parm_name]

Ответ 1

Просто добавьте их в ссылку:

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

и в контроллере:

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

Если вы используете вспомогательные методы для маршрутов (например, company_path), вы можете добавить хэш из параметров, поэтому эти два должны быть похожими:

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

Из документация:

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>

Ответ 2

Здесь больше рельсов - это способ сделать это.

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

Вам нужно указать ваши параметры в хэше, определяющем ссылку. Он также должен быть методом GET. Конечно, стилизация необязательна.

Это действительно должно быть здесь: http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to