Почему метод удаления дает мне неправильный путь?с - PullRequest
0 голосов
/ 04 марта 2012

У меня есть простая ссылка для удаления:

= link_to "Delete", messages_path(message.id), :method => :delete

Дает мне ошибку: No route matches [DELETE] "/messages.316"

Как это исправить?

У меня естьruby 1.9.3p0 Rails 3.1.1

Мои маршруты.rb

  resources :messages do
    collection do
      get :outbox
    end
  end

когда я изменяю это на message_path я получаю wrong number of arguments (0 for 1) -> full_trace: https://gist.github.com/1967988
-> все файлы: https://gist.github.com/1967994

   outbox_messages GET    /messages/outbox(.:format)          {:action=>"outbox", :controller=>"messages"}
           messages GET    /messages(.:format)                 {:action=>"index", :controller=>"messages"}
                    POST   /messages(.:format)                 {:action=>"create", :controller=>"messages"}
        new_message GET    /messages/new(.:format)             {:action=>"new", :controller=>"messages"}
       edit_message GET    /messages/:id/edit(.:format)        {:action=>"edit", :controller=>"messages"}
            message GET    /messages/:id(.:format)             {:action=>"show", :controller=>"messages"}
                    PUT    /messages/:id(.:format)             {:action=>"update", :controller=>"messages"}
                    DELETE /messages/:id(.:format)             {:action=>"destroy", :controller=>"messages"}

РЕДАКТИРОВАТЬ: Связано с Как уничтожить полиморфную модель?Метод уничтожить отсутствующий аргумент

Ответы [ 3 ]

4 голосов
/ 04 марта 2012

Вы должны сказать message_path (в единственном числе), поскольку это путь для одиночного сообщения:

link_to "Delete", message_path(message.id), :method => :delete
1 голос
/ 04 марта 2012

Вы используете неправильный помощник URL.Просто передайте переменную message в качестве второго аргумента для link_to.

Пример:

= link_to "Delete", message, :method => :delete
0 голосов
/ 04 марта 2012

Вы хотите message_path(message), а не messages_path.messages_path возвращает индекс.

...