Я застрял на проблеме маршрутизации в приложении Rails 3.0.x.
Я пытаюсь создать URL-адрес типа / registration / renew / 1 . Идея состоит в том, что это продлило бы регистрацию участника с id = 1.
Для этого я настроил следующие маршруты
routes.rb
match "registration/renew" => "registration#renew"
Пользователь попадает на страницу регистрации по навигационной ссылке, например
<%= link_to "Full Member", registration_renew_path(@member) %>
Проблема в том, что сгенерированная ссылка выглядит так: / registration / renew.1 , которая указывает, что расширение формата создается и добавляется. Который затем я попытался сделать необязательным путем включения аргумента респондента: формат согласно следующему правилу соответствия
match "registration/renew(/:id(.:format))" => "registration#new"
но это не так с
No route matches {:controller=>"registration", :action=>"renew", :format=>#<Member id: 1,.....
Итак, в этот момент я перепроверил Rails Guides и т. Д., Но все еще не смог сгенерировать URL, который я нашел.
Только когда у меня были два правила:
match "registration/renew" => "registration#renew"
match "registration(/:action(/:id(.:format)))" => "registration#renew"
в файле маршрутов будет URL / registration / renew / 1 доставит меня на страницу. Хотя я не чувствовал, что это было правильное, аккуратное решение.
Последний вопрос (ы)
- Каким должен быть link_to метод
- Какая корректная запись в файле rout.rb
Заранее спасибо