рельсы 3 уничтожить проблему действий - PullRequest
0 голосов
/ 31 марта 2011

Я пытаюсь удалить несколько строк в моей базе данных, но когда я вызываю действие удаления, действие обновления работает.

это delete.html.haml

 =form_for @post, :url => {:action => 'destroy', :id => @post.id} do |f|

это маршрут

resources :post
    root :to => "post#index"
    match '/delete/:id/', :to => "post#delete"

В чем проблема? Кто-нибудь понимает?

Ответы [ 3 ]

1 голос
/ 13 апреля 2011

Если вы используете рельсы 3 , то вам нужно убедиться, что в вашем заголовке есть <% = csrf_meta_tag%>. Я поставил свой после моих тегов <% = javascript_include_tag ...%>. Также убедитесь, что вы включили rails.js. (Это будет в ваших файлах макета).

Подробнее здесь: http://railsforum.com/viewtopic.php?id=38460 Посмотрите на дно.

1 голос
/ 31 августа 2012

Запись root в ваших маршрутах должна быть размещена после блока match.Плюс: похоже, что вы перепутали действие контроллера и глагол http: используйте delete в действии формы и destroy в вызове действия контроллера:

=form_for @post, :url => {:action => 'delete', :id => @post.id} do |f|

resources :post match '/delete/:id/', :to => "post#destroy" root :to => "post#index"

1 голос
/ 31 марта 2011

:action должно быть delete, чтобы соответствовать названию действия в вашем контроллере:

= form_for @post, :url => {:action => 'delete', :id => @post.id} do |f|
...