2013-12-08 3 views
0

Я следующее в представлении:Рельсы маршрутизации - Передача уникальный идентификатор в URL

<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 %> 

URL-адрес, представленный этим видом является: www.website.com/{town_id}/person/

person_check_path выглядит следующим образом:

www.website.com/{town_id}/person/{person.id}/check

Мой вопрос: как я могу пройти person.id в person_check_path динамически? Прямо сейчас эта кнопка ссылается на один и тот же URL-адрес каждый раз, но мне нужно, чтобы он менялся на основе того, на кого нажата кнопка.

ответ

3

Сначала вы должны добавить новый запрос GET на маршрутах, что-то вроде этого:

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 
+0

А, оценка. Вторая часть того, где вы передаете параметры, - это то, что мне не хватало. Благодарю. – Luigi

+0

Добро пожаловать. Поместите параметры, которые вы хотите отправить в скобках переменной пути. Это все ;) – damoiser

Смежные вопросы