【问题标题】:Is it possible to specify a named route within a resourceful route?是否可以在资源丰富的路线中指定命名路线?
【发布时间】:2011-03-30 01:08:49
【问题描述】:

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

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

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

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

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

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

我正在尝试做的事情是否可行,或者我是否必须在此块之外定义我的命名路线?

谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 routing named-routing


    【解决方案1】:

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

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

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

    【讨论】:

    • 啊,好的,我现在明白了。我应该更仔细地查看我的 rake 路线,发现这是我不理解的路线命名方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 2012-02-21
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    相关资源
    最近更新 更多