我们正在为一个脚手架应用的WidgetsController添加一个新方法'delete_stuff'。
在我们添加的路线中 匹配'widget / delete_stuff /:id'=> '小部件#delete_stuff'
我可以手动创建像
这样的html(GET)链接<a href="/widget/delete_stuff/<% widget.id %>">My Custom Delete Stuff</a>
但是在很多级别上都很糟糕(使用GET代替DELETE,不允许使用CONFIRM对话,不干,等等)
问题是我无法弄清楚如何将url助手用于自定义方法...尝试做这样的事情:
<% link_to 'DeleteStuff', @widget, :confirm => 'Are you sure?', :method => :delete %>
但是,在呈现html时,这会被忽略。
我显然遗漏了一些关于如何使用link_to的基本信息,我们将不胜感激任何帮助!
干杯, JP
答案 0 :(得分:2)
看起来你在开头就错过了一个等号。它应该是:
<%= link_to 'DeleteStuff', @widget, :confirm => 'Are you sure?', :method => :delete %>
答案 1 :(得分:2)
要解决您的路由问题并将其他操作作为删除方法尝试此操作;
在routes.rb
中resources :widgets do
member do
delete 'delete_stuff'
end
end
答案 2 :(得分:1)
首先运行rake routes
以了解您可以使用哪些URL帮助程序。您可能会看到一行以:
delete_stuff_widget
然后,您可以附加path
或url
以获取您应在视图和控制器中使用的名称。我怀疑你的新link_to会是这样的:
link_to "DeleteStuff", delete_stuff_widget_path(@widget), :confirm => "Sure?", :method => :delete