При просмотре руководства по маршрутизации ссылка для удаления должна быть в форме, как в вашем примере. За исключением того, что метод должен быть DELETE вместо POST. Но это может быть совместимой проблемой / исправлением, поскольку метод DELETE «менее» поддерживается по сравнению с GET и POST.
Действие show активируется с помощью метода GET для вашей ссылки, что явно не относится к вашей ссылке.
Так вы уверены, что ваши маршруты настроены правильно? Что-то вроде:
map.resources :discussions
Редактировать :
Я только что увидел, что в вашем коде link_to
есть ошибка, :method
должен быть установлен в :delete
:
<%= link_to 'Delete', {:action=>'destroy', :id=>@discussion}, :confirm=>"Are you sure", :method=>:delete %>
Кроме того, вы можете использовать что-то вроде discussion_path(@discussion_item)
для создаваемого пути (URL). Это более понятно, чем создавать путь вручную. Для этого вам понадобится настройка маршрута, как указано выше, и переменная @discussion_item
, содержащая информацию о текущей (показанной) странице.
Итак, ваша link_to
строка становится такой:
<%= link_to 'Delete', discussion_path(@discussion_item), :confirm=>"Are you sure", :method=>:delete %>