rails 3摧毁动作问题

时间:2011-03-31 00:20:47

标签: ruby ruby-on-rails-3 action destroy

我正在尝试删除数据库中的某些行,但是当我调用destroy action时,更新操作会起作用。

这是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 个答案:

答案 0 :(得分:1)

:action应为delete,以匹配控制器中操作的名称:

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

答案 1 :(得分:1)

如果你使用rails 3 ,那么你需要确保你有<%= csrf_meta_tag%>在你的标题中。我在我的<%= javascript_include_tag ...%>之后放了我的标签。还要确保包含rails.js。 (这将在您的布局文件上)。

此处有更多详情:http://railsforum.com/viewtopic.php?id=38460向下看。

答案 2 :(得分:1)

路径中的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"