0

データベースでいくつかの行を削除しようとしていますが、破棄アクションを呼び出すと、更新アクションが機能します。

これは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"

どうしたの?誰か分かりますか?

4

3 に答える 3

1

Rails 3 を使用している場合は、ヘッダーに <%= csrf_meta_tag %> があることを確認する必要があります。<%= javascript_include_tag... %> タグの後に私のものを置きます。また、rails.js が含まれていることを確認してください。(これはレイアウト ファイルにあります)。

詳細はこちら: http://railsforum.com/viewtopic.php?id=38460 下の方を見てください。

于 2011-04-13T10:29:10.167 に答える
1

は、コントローラーのアクションの名前と一致する:action必要があります。delete

= form_for @post, :url => {:action => 'delete', :id => @post.id} do |f|
于 2011-03-31T00:24:24.087 に答える
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"

于 2012-08-31T13:24:53.647 に答える