我在视图中有以下内容:
<dl class="dl-horizontal">
<% @people.each do |person| %>
<dt> <%= person[:name] %> </dt>
<dd> <%= button_to('Check', person_check_path, :class => 'btn btn-medium btn-primary', :method => :get) %>
<% end %>
此视图代表的网址为:www.website.com/{town_id}/person/
person_check_path
看起来像这样:
www.website.com/{town_id}/person/{person.id}/check
我的问题是如何动态地将person.id
传递给person_check_path
?现在,上面的按钮每次都链接到同一个网址,但我需要根据点击该按钮的人来更改。
答案 0 :(得分:3)
首先,你应该在路线中添加新的获取请求,类似于:
get "/:town_id/person/:person_id/check" => "town#check", :as => :check_town_with_person
然后您可以从任何地方呼叫路线,例如:
link_to "My Link", check_town_with_person_path(:town_id => @town.id, :person_id => @person.id)
请记住,这些字段(在路线中设置)是必需的。你甚至可以用这种方式添加一些非强制性的参数:
link_to "My Link", check_town_with_person_path(:town_id => @town.id, :person_id => @person.id, :another_var => "my_var")
=> /3/person/1/check?another_var=my_var