2011-02-19 63 views
0

我们正在向脚手架应用程序的WidgetsController添加一个新方法'delete_stuff'。什么是将'link'添加到新自定义方法的正确方法

在路线

我们增加 匹配 '插件/ delete_stuff /:身份证'=> '小部件#delete_stuff'

我可以手动创建HTML(GET)链接像

<a href="/widget/delete_stuff/<% widget.id %>">My Custom Delete Stuff</a> 

但是,这是很糟糕的如此多的级别(使用GET而不是DELETE,不允许确认对话框,不干,等等)

问题是我无法弄清楚如何使用url助手进行自定义方法......尝试做这样的事情:

<% link_to 'DeleteStuff', @widget, :confirm => 'Are you sure?', :method => :delete %> 

但是,只是在html呈现时被忽略。

我明显错过了关于如何使用link_to的一些基本知识,任何帮助将不胜感激!

干杯, JP

回答

1

首先运行rake routes知道什么网址助手提供给您。您可能会看到开头的行:

delete_stuff_widget 

然后,您可以追加pathurl得到你应该在你的视图和控制器使用的名称。我怀疑你的新link_to将如下所示:

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

看起来你在开始时缺少等号。它应显示为:

<%= link_to 'DeleteStuff', @widget, :confirm => 'Are you sure?', :method => :delete %> 
2

解决您的路由问题并使您的其他操作成为删除方法尝试此操作;

在routes.rb中

resources :widgets do 
    member do 
    delete 'delete_stuff' 
    end 
end 

相关问题