У меня есть приложение Rails с ресурсом «Маршрут» и контроллером «Маршрут» (не путать с / 1001 * Rails маршрутами). Я настроил его так, чтобы администраторы сайта (и только администраторы) могли управлять ресурсом «Маршрут» через контроллер «Маршрут», в то время как обычные пользователи управляют своими маршрутами с помощью контроллера «Myroute». Я хочу, чтобы оба контроллера использовали маршрутизацию RESTful, но у меня возникли проблемы с функцией form_for в представлении «edit» для контроллера «Myroute».
Мой тег формы для представления «edit» контроллера «Myroute» в настоящее время:
<% form_for @route, :url => { :id => @route.id }, :html => { :method => :put } do |f| %>
Что разрешает следующее:
<form action="/myroutes/44/edit" class="edit_route" id="edit_route_44" method="post">
Это не правильно, так как действие формы должно идти к методу create, а метод edit обрабатывает только GET-запросы. Из того, что я могу сказать, посмотрев HTML-код, сгенерированный из представлений «Маршрут», форма должна сделать запрос PUT для «/ myroutes / 44»
Как мне написать тег form_for, чтобы он использовал маршрутизацию RESTful, чтобы сделать запрос PUT для метода «update» контроллера, который отличается от модели?