2011-02-09 2 views
1

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

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

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

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

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

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

Thx за ваше время,
Эрвин

ответ

0

Я подобную проблему, увидеть ее here

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

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

+0

Это было thx! – ErwinM

2

Вы пробовали определять его как запрос PUT:

 
form_tag(@project, :method => :put) do 
    text_field_tag :attribute_i_want_to_update, '' 
    submit_tag 'go' 
Смежные вопросы