我正在尝试删除数据库中的某些行,但是当我调用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"
有什么问题?有人明白吗?
答案 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"