0

試してみるときにカスタムリモートアクションでボタンを作りたい

<%= button_to "something", {:controller => :updates, :action => :new}, {:remote => true} %>

正常に動作しますが、:actionをコントローラーで自分で定義したアクションに変更すると

<%= button_to "something", {:controller => :updates, :action => :destroy_all, :method => :delete}, {:remote => true} %>

フォームで生成されたパスが間違っている

<form action="/assets?action=destroy_all&controller=updates&method=delete" class="button_to" data-remote="true" method="post">

updates_controllerで:destroy_allを定義しました

def destroy_all
    #some spaghetti code
end

私は何を間違えましたか?

4

2 に答える 2

2

APIをチェックしてください。に:method属しますが、html_optionsではありませんoptions

<%= button_to "something", {:controller => :updates, :action => :destroy_all}, {:remote => true, :method => :delete} %>

また、ルートファイルにを指すルートを追加する必要があります"updates#destroy_all"

于 2012-05-25T13:47:18.307 に答える
0

メソッド名の変更に問題はありません。オプションを正しく渡さない。見る

action="/assets?action=destroy_all&controller=updates&method=delete"

私はそれがあなたが望むものではないことを薄くします。試す

<%= button_to "smth", {:controller => :updates, :method => :destroy_all}, {:remote => true, :method => :delete} %>

また

<%= button_to "smth", '/updates/destroy_all', {:remote => true, :method => :delete} %>

メソッドdelete=)を使用するように注意してください

于 2012-05-25T13:53:44.063 に答える