我一直在将Rails 2.3.8用于我一直在研究的项目,但刚刚将项目迁移到Rails 3.0.3。在解决了基本的错误之后,我现在遇到了一个自定义控制器方法的问题。
在gallery_controller中,我有一个名为'extract'的自定义方法。在rails 2.3.8中,这很好,没有额外的配置。我可以去/ galleries / extract /:id,它会做我想要的。
现在,当我尝试使用表单中的原始代码创建指向它的链接时,代码会破坏应用程序:
<%= link_to "Add photos to gallery from: ",
:action => 'extract', :id => @gallery.id %>
以及当我尝试使用此代码转到页面时出现的错误:
No route matches {:action=>"extract", :controller=>"galleries", :id=>2}
在查看routes.rb之后,我开始怀疑这是因为
而失败match ':controller(/:action(/:id(.:format)))'
未包含在内,实际上已弃用。
运行rake任务| grep'extract'什么都没给我。
那我该如何解决这个问题?
答案 0 :(得分:4)
请参阅Routing Guide: Adding More RESTful Actions。您需要告诉应用程序关于提取操作的路由,如下所示:
resources :gallery do
get 'extract', :on => :member
end