Ошибка маршрутизации с использованием form_tag - PullRequest
1 голос
/ 09 февраля 2011

У меня проблема с маршрутизацией, которая, похоже, не позволяет мне успокоиться.

У меня есть ресурс проекта, в котором все остальные действия работают, как и ожидалось.

Теперь я хочудобавить возможность обновления одного определенного атрибута через небольшую всплывающую форму.Поэтому в этом всплывающем окне я использую:

form_tag (@project) do
  text_field_tag :attribute_i_want_to_update, ''
  submit_tag 'go'

В действии обновления контроллера я собираюсь обработать эту конкретную отправку.Однако я получаю сообщение об ошибке маршрутизации, утверждая, что нет маршрута к «/ projects / 15».Я проверил, что запрос использует POST.Очевидно, для POST существует маршрут к / projects / 15 (например, обычный маршрут обновления работает нормально и отправляет сообщения именно на этот маршрут).

Чего мне не хватает?

Спасибо за ваше время,
Эрвин

Ответы [ 2 ]

2 голосов
/ 09 февраля 2011

Вы пытались указать его как запрос PUT:

form_tag(@project, :method => :put) do
  text_field_tag :attribute_i_want_to_update, ''
  submit_tag 'go'
0 голосов
/ 10 февраля 2011

У меня была похожая проблема, посмотрите ее здесь

Если объект не новый, то рельсы (по крайней мере, 3 это делают) будут искать маршрут PUT, а не POST.Если вы проверите, что действительно отправлено на сервер, например, с помощью Firebug, вы увидите, что POST сделан, но с параметром "_method = put".

Rails будет искать маршрут PUT для обновления существующего объекта, что соответствует определению REST Fielding.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...