Браузеры обычно поддерживают методы GET и POST HTTP. Чтобы эмулировать глаголы PUT и DELETE, Rails вводит специальный параметр _method
при отправке формы.
Вы указываете метод, который хотите использовать, передавая опцию :method
, как и вы.
<%= link_to("Action with DELETE", path_to_something, :method => :delete) %>
<%= link_to("Action with PUT", path_to_something, :method => :put) %>
Если не указано, значением по умолчанию является GET
.
Начиная с Rails 3, Rails использует ненавязчивый JavaScript для обработки метода DELETE. Он передает глагол HTTP в атрибуте data-method
, который является HTML 5 функцией .
В вашем случае это не работает, потому что вы, вероятно, забыли включить библиотеку JavaScript (например, Prototype или jQuery) и адаптер Rails.
Убедитесь, что вы используете jQuery или Prototype, и вы включаете файл rails.js
javascript.
Также не забудьте добавить csrf_meta_tag
.
<%= csrf_meta_tag %>
Если вы хотите научиться двигаться, я написал статью о ненавязчивом JavaScript в Rails 3 несколько месяцев назад.