Вот как вы можете передать параметр через метод link_to, чтобы, скажем, создать новый объект с переданным параметром.Эта стратегия позволит вам передавать переменные между действиями в вашем контроллере и создавать объекты с предопределенными атрибутами:
Скажем, в вашем представлении show у вас есть переменная с именем @ foo что вы хотите передать своему новому действию контроллера.В этом случае в вашем представлении show вы можете иметь
<%= link_to "Link Text", new_widget_path(:foo => @foo) %>
, который будет хранить @foo в params [: foo], что позволит вам использовать params [: foo] в вашемконтроллер.На какое действие контроллера вы обращаетесь, зависит от * new_widget_path *.В этом случае вы получаете указание на действие new в WidgetController.
Нажатие на Текст ссылки направит Rails к действию new ваш WidgetController.Вы можете иметь
def new
@widget = Widget.new(:foo => params[:foo])
end
Затем в вашем new.html.erb файле просмотра вы можете разрешить пользователю создавать новый объект Widget с этим предопределенным fooАтрибут уже заполнен через скрытое поле формы:
<%= form_for(@widget) do |f| %>
<%= f.label :other_attribute %><br />
<%= f.text_field :other_attribute %>
<%= f.hidden_field :foo %>
<%= f.submit %>
<% end %>
Позволяет пользователю создать новый виджет с уже заполненным атрибутом foo !