Ruby on rails rails资源深度嵌套

Ruby on rails rails资源深度嵌套,ruby-on-rails,routes,Ruby On Rails,Routes,我读过一些文章,我知道继承2级以上的深层资源是不好的,但现在让我们忘掉它吧 让我们想象一下,我有这样的模型: car_brand car_model car_type 在route中,我可以这样写: namespace :admin do resources :car_brands do resources :car_models do resources :car_types end

我读过一些文章,我知道继承2级以上的深层资源是不好的,但现在让我们忘掉它吧

让我们想象一下,我有这样的模型:

 car_brand
   car_model
     car_type
在route中,我可以这样写:

namespace :admin do
    resources :car_brands  do
          resources :car_models  do
            resources :car_types
          end
        end
end
但是我没有找到任何好文章,如何用这样的模式生成我的控制器和视图

  • 我需要在控制器类标题中编写的内容,类似于:class

    Admin::CarBrands::CarModelsController

  • 还是什么?我需要弄清楚这一刻,每个子模型视图必须在子文件夹视图中,或者如何?请不要否决,也不要关闭它,我真的很困惑,我不知道如何去(
    Admin::CarTypesController
    in
    controllers/Admin
    文件夹as
    car\u types\u controller.rb

    运行
    rake routes
    并查看这一行,例如:

    /admin/car_brands/:car_brand_id/car_models/:car_model_id/car_types(.:format) 
    

    这是将映射到
    Admin::CarTypesController\index
    metod的uri模式。在
    params
    hash中,您将在
    :car\u brand\u id
    :car\u model\u id

    Admin::CarTypesController
    中找到
    controllers/Admin
    文件夹中的
    car\u types\u controller.rb

    运行
    rake routes
    并查看这一行,例如:

    /admin/car_brands/:car_brand_id/car_models/:car_model_id/car_types(.:format) 
    

    这是将映射到
    Admin::CarTypesController\index
    metod的uri模式。在
    params
    hash中,您将在
    :car\u brand\u id
    :car\u model\u id

    Admin::CarTypesController
    中找到
    controllers/Admin
    文件夹中的
    car\u types\u controller.rb

    运行
    rake routes
    并查看这一行,例如:

    /admin/car_brands/:car_brand_id/car_models/:car_model_id/car_types(.:format) 
    

    这是将映射到
    Admin::CarTypesController\index
    metod的uri模式。在
    params
    hash中,您将在
    :car\u brand\u id
    :car\u model\u id

    Admin::CarTypesController
    中找到
    controllers/Admin
    文件夹中的
    car\u types\u controller.rb

    运行
    rake routes
    并查看这一行,例如:

    /admin/car_brands/:car_brand_id/car_models/:car_model_id/car_types(.:format) 
    
    这是将映射
    Admin::CarTypesController\index
    metod的uri模式。在
    params
    散列中,您将找到
    :car\u brand\u id
    :car\u model\u id

    执行上述每个命令会将控制器类和视图目录以及其他特定于测试的文件放置在相应的目录中。您的问题更多地针对控制器和视图,因此关注的目录是:

    - app/controllers/admin/
    - app/views/admin/car_brands/
    - app/views/admin/car_models/
    - app/views/admin/car_types/
    
    然后,
    CarBrandsController
    的控制器声明如下所示:

    class Admin::CarBrandsController < ApplicationController
      ...
    end
    
    class Admin::CarBrandsController
    通过这些设置,现在取决于您如何将每个控制器作为一个资源进行管理。如果您将
    car\u类型
    嵌套在
    car\u模型
    中,则
    car\u模型
    控制器中的方法也将在参数中预期
    car\u类型
    。如果您不嵌套
    car\u类型
    资源,则esource本身是一个独立的资源,不依赖于任何其他资源

    执行上述每个命令会将控制器类和视图目录以及其他特定于测试的文件放置在相应的目录中。您的问题更多地针对控制器和视图,因此关注的目录是:

    - app/controllers/admin/
    - app/views/admin/car_brands/
    - app/views/admin/car_models/
    - app/views/admin/car_types/
    
    然后,
    CarBrandsController
    的控制器声明如下所示:

    class Admin::CarBrandsController < ApplicationController
      ...
    end
    
    class Admin::CarBrandsController
    通过这些设置,现在取决于您如何将每个控制器作为一个资源进行管理。如果您将
    car\u类型
    嵌套在
    car\u模型
    中,则
    car\u模型
    控制器中的方法也将在参数中预期
    car\u类型
    。如果您不嵌套
    car\u类型
    资源,则esource本身是一个独立的资源,不依赖于任何其他资源

    执行上述每个命令会将控制器类和视图目录以及其他特定于测试的文件放置在相应的目录中。您的问题更多地针对控制器和视图,因此关注的目录是:

    - app/controllers/admin/
    - app/views/admin/car_brands/
    - app/views/admin/car_models/
    - app/views/admin/car_types/
    
    然后,
    CarBrandsController
    的控制器声明如下所示:

    class Admin::CarBrandsController < ApplicationController
      ...
    end
    
    class Admin::CarBrandsController
    通过这些设置,现在取决于您如何将每个控制器作为一个资源进行管理。如果您将
    car\u类型
    嵌套在
    car\u模型
    中,则
    car\u模型
    控制器中的方法也将在参数中预期
    car\u类型
    。如果您不嵌套
    car\u类型
    资源,则esource本身是一个独立的资源,不依赖于任何其他资源

    执行上述每个命令会将控制器类和视图目录以及其他特定于测试的文件放置在相应的目录中。您的问题更多地针对控制器和视图,因此关注的目录是:

    - app/controllers/admin/
    - app/views/admin/car_brands/
    - app/views/admin/car_models/
    - app/views/admin/car_types/
    
    然后,
    CarBrandsController
    的控制器声明如下所示:

    class Admin::CarBrandsController < ApplicationController
      ...
    end
    
    class Admin::CarBrandsController

    通过这些设置,现在取决于您如何将每个控制器作为一个资源进行管理。如果您将
    car\u类型
    嵌套在
    car\u模型
    中,则
    car\u模型
    控制器中的方法也将在参数中预期
    car\u类型
    。如果您不嵌套
    car\u类型
    资源,则esource本身是一个独立的资源,不依赖于任何其他资源。

    我这样做了,我不想提出新问题,我会在这里问,区别是什么