Проблема маршрутизации в Rails 3: ActionController :: RoutingError (Нет подходящих маршрутов ...) - PullRequest
4 голосов
/ 10 января 2011

Я создал пользовательское действие RESTful, которое называется "post".Он появляется в TransactionsController как (публичный) метод, называемый post.

resources :transactions do
  member :post do
    post :post
  end
end

У меня есть форма, настроенная следующим образом:

<form action="/transactions/25/post">
   ...
   <input id="transaction_submit" commit="commit" type="submit" value="Post">
</form>

Когда я нажимаю кнопку «Опубликовать»,мой сервер получает:

POST "/transactions/25/post"

Я ожидаю, что это вызовет метод "post" в моем TransactionController, но вместо этого я получаю ошибку маршрутизации

ActionController::RoutingError (No route matches "/transactions/25/post"):

Есть идеи?Спасибо.

Джеймс

1 Ответ

8 голосов
/ 19 января 2011

наконец нашел решение, проблема в том, что form_for добавляет скрытое поле _method со значением "put", поскольку транзакция уже существует, чтобы обойти эту проблему, мне пришлось сделать следующее:

<%= form_for @transaction, :url => post_transaction_path(@transaction), :html => { :method => :post } do |form| %>

по крайней мере, это решило проблему для меня, см. https://rails.lighthouseapp.com/projects/8994/tickets/4884-routing-error-for-restful-resource-under-namespace для дальнейшей справки

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