3

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

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

4

1 回答 1

4

请参阅路由指南:添加更多 RESTful 操作。您需要告诉应用程序的有关提取操作的路由,如下所示:

resources :gallery do
  get 'extract', :on => :member
end
于 2010-12-16T18:39:25.670 回答