cjm, в ответ на ответ jimworm метод контроллера destroy
вызывается, когда вы удаляете (HTTP-глагол, на самом деле это POST
с пропущенным полем _method=DELETE
, так как некоторые браузеры не поддерживают DELETE
глагол.
как он сказал:
<%= link_to 'Delete', @model, :confirm=> 'Are you sure?', :method=> :delete %>
Маршрут совпадает с вашим show
или GET /models/1
, но вместо него используется глагол DELETE
,
DELETE /models/1
что на самом деле
POST /models/1
со скрытым полем _method=DELETE
, переданным для поддержки всех браузеров.
Как он также упомянул, Rails автоматически определяет, какое действие использовать при использовании form_for
, проверяя, является ли @model
new_record?
(пока нет id
) или существующим. Затем он выберет
POST /models
для create
или
PUT /models/1
для update