将link_添加到新的自定义方法的正确“轨道”方式是什么

时间:2011-02-19 07:04:00

标签: ruby-on-rails urlhelper

我们正在为一个脚手架应用的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

3 个答案:

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

然后,您可以附加pathurl以获取您应在视图和控制器中使用的名称。我怀疑你的新link_to会是这样的:

link_to  "DeleteStuff", delete_stuff_widget_path(@widget), :confirm => "Sure?", :method => :delete