【问题标题】:Using resources with custom controller names使用具有自定义控制器名称的资源
【发布时间】:2012-09-15 06:05:45
【问题描述】:

我正在使用嵌套资源,但是我遇到的控制器名称应该更具描述性。

例如,我有一个控制器 ProductsControllerImagesController

resources :products do
  resources :images
end

这很好用,但稍后我可能需要将ImageController 用于产品图像以外的其他图像,因此应将其命名为 ProductsImagesController

但是我怎样才能在resources() 上指定控制器名称而不回退到像这样丑陋的东西:

match 'products/images' => 'products_images#index'
match 'products/images/new' => 'products_images#new'

【问题讨论】:

    标签: ruby-on-rails routes


    【解决方案1】:
    resources :products do
      resources :images, :controller => "products_images"
    end
    

    【讨论】:

    • 我在 Rails 4 中遇到了这个问题?资源 :analytics, :controller=> '/admin/portal/api/analytics' do collection do get :products_by_user_id get :products_by_stylist end end
    【解决方案2】:

    来自 Zend 框架背景,我认为您正在寻找模块化结构。 Rails 似乎提供了这个,称为“命名空间”:

    namespace :admin do
      resources :posts, :comments
    end
    

    创建到 Admin::PostsController 和 Admin::CommentsController 的路由。在您的情况下,您将拥有 Products::ImagesController。

    http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

    我从另一个接受的答案中发现:zend modules like in rails

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-10
      • 2020-08-20
      • 2017-04-22
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      • 2016-11-12
      相关资源
      最近更新 更多