2010-12-27 3 views
0

Я использовал следующие в маршрутах, чтобы добавить новое действие в мой контроллер Email:Как добавить новое действие к контроллеру?

map.resources :emails, :member => { :newfwd => :put} 

Ожидаемый результат в том, что newfwd_email_path (: идентификатор => 1) будет генерировать следующий адрес: письма/1/newfwd

Он делает. Но я получаю ошибку, она рассматривает «1» как действие и «newfwd» как id. Я хочу, чтобы «1» интерпретировался как идентификатор писем, на которых действует действие newfwd.

Я не уверен, что я делаю неправильно. (Примечание: я использую Rails 2.3.8)

ответ

1

Попробуйте

link_to newfwd_email_path(1), :method => :put 

:id => 1 так хорошо, как 1;)

+0

Понятно, как сложенный метод на маршрутах не работает? Позвольте мне попробовать это ... – Angela

0

Вам не нужно передавать хэш методу newfwd_email_path. Попробуйте

newfwd_email_path(1) 

EDIT: Вы также должны использовать: метод =>: положить, чтобы гарантировать, что глагол PUT используется при получении запроса на сервере и маршрутизация вступает в силу.

+0

я себе, спасибо - вы знаете, почему? похоже, если я прямо укажу его на маршрутах, он должен работать ...? – Angela

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