Rails3自定义控制器方法未路由:适用于Rails2

时间:2010-12-16 18:26:25

标签: ruby-on-rails-3 controller custom-routes

我一直在将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'什么都没给我。

那我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

请参阅Routing Guide: Adding More RESTful Actions。您需要告诉应用程序关于提取操作的路由,如下所示:

resources :gallery do
  get 'extract', :on => :member
end