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 回答