Ruby on rails rails资源深度嵌套
我读过一些文章,我知道继承2级以上的深层资源是不好的,但现在让我们忘掉它吧 让我们想象一下,我有这样的模型: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
car_brand
car_model
car_type
在route中,我可以这样写:
namespace :admin do
resources :car_brands do
resources :car_models do
resources :car_types
end
end
end
但是我没有找到任何好文章,如何用这样的模式生成我的控制器和视图
还是什么?我需要弄清楚这一刻,每个子模型视图必须在子文件夹视图中,或者如何?请不要否决,也不要关闭它,我真的很困惑,我不知道如何去(
Admin::CarTypesController
incontrollers/Admin
文件夹ascar\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 idAdmin::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 idAdmin::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 idAdmin::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本身是一个独立的资源,不依赖于任何其他资源。我这样做了,我不想提出新问题,我会在这里问,区别是什么