Rails маршрутизация: что мне не хватает? - PullRequest
2 голосов
/ 22 февраля 2011

У моего приложения есть Билеты, и билет может быть "решен". Я могу POST через AJAX для действия: решить без проблем, но я не могу POST через обычную форму HTML. Я получаю No route matches "/tickets/321/resolve". Форма HTML и JS указывают на один и тот же точный URL. Что я делаю не так?

Маршруты:

resources :tickets do
  post :resolve, :on => :member
end

Контроллер:

def resolve
  resource.resolved!

  respond_to do |wants|
    wants.html { redirect_to :back }
    wants.js
  end
end

Форма:

= form_for(ticket, :url => resolve_ticket_path(ticket)) do |f|
  ...

1 Ответ

1 голос
/ 22 февраля 2011

На самом деле, когда вы пытаетесь отправить свою форму с существующими ресурсными (тикетными) рельсами, по умолчанию отправляется запрос PUT, поэтому вы должны установить :method => :post очистить или изменить маршрут с

post :resolve, :on => :member

до

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