0

我只是将我的应用程序升级到 Rails 3,因为无论如何我都必须重写我的路由,所以我需要一些时间来改进我的命名路由。

我有一个具有垃圾操作的发票控制器(/invoices/trash 列出了垃圾中的所有发票)。为了简单起见,我想通过命名路由(即垃圾url)访问它。

我可以通过以下方式轻松实现这一目标

match "/invoices/trash" => "invoices#trash", :as => :trash

我想知道的是在我为发票控制器定义路由的块中是否有这样做的方法。我尝试了以下方法,但它不起作用。

resources :invoices do
  collection do
    get :trash, :as => :trash
  end
end

我正在尝试做的事情是可能的还是我必须在这个块之外定义我的命名路线?

谢谢。

4

1 回答 1

2

您列出的方法(如下所示)对我来说很好,它生成trash_invoices_pathtrash_invoices_url辅助方法。

resources :invoices do
  collection do
    get :trash, :as => :trash
  end
end

如果您需要使用那些特定的方法名称而不是生成的方法名称,您可以在应用程序控制器中创建命名方法,trash_urltrash_path从上述生成的方法中调用并返回路径。

于 2011-03-30T01:13:23.840 回答