Ошибка маршрутизации Rails на действительном маршруте - PullRequest
0 голосов
/ 24 ноября 2010

У меня есть следующее в моем файле маршрутов:

resources :timelogs do
  member do
    post :stop
  end
  collection do
    get :start
  end
end

, который выдает следующее на «рейковых маршрутах»:

rake routes | grep stop
stop_timelog POST   /timelogs/:id/stop(.:format)       {:action=>"stop", :controller=>"timelogs"}

Однако при публикации запроса на этот URLЯ вижу:

Started POST "/timelogs/325/stop" for 188.220.17.64 at Wed Nov 24 02:22:22 -0800 2010
ActionController::RoutingError (No route matches "/timelogs/325/stop"):

Все это выглядит так, как будто оно должно работать, однако это не так.В чем может быть проблема здесь?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2012

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

post :resolve, :on => :member

на

put :resolve, :on => :member
0 голосов
/ 24 ноября 2010

Я не вижу проблем с маршрутами, которые вы вставили, и проверил, что они работают для меня в приложении для заметок.

Started POST "/timelogs/123/stop" for 127.0.0.1 at 2010-11-24 11:49:25 +0000
  Processing by TimelogsController#stop as */*
  Parameters: {"a"=>"b", "id"=>"123"}
Rendered text template (0.0ms)
Completed 200 OK in 60ms (Views: 59.9ms | ActiveRecord: 0.0ms)

Возможно, что-то еще в вашем маршруте. Rb здесь конфликтует?

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