我无法理解如何在命名空间中生成资源,以及如何在资源中生成资源:子文件存在问题... 我怎么能在rails控制器和视图中生成这样的路由:
namespace :admin do
namespace :catalogs do
namespace :parfume do
resource :brand do
resource :models do
我试试:
rails g scaffold Admin :: Catalog
等...
rails g scaffold Admin :: Catalog :: To :: Brand
但是在路线上我看到铁轨正在产生许多这种路线:
namespace :catalogs do
namespace :to do
namespace :brand do
namespace :models do
namespace :types do
resources :to_articles
end
end
end
end
end
namespace :catalogs do
namespace :to do
namespace :brand do
namespace :models do
resources :types
end
end
end
end
namespace :catalogs do
namespace :to do
namespace :brand do
resources :models
end
end
end
但我希望它必须通过命名空间和资源来完成,而不是现在的rails生成器如何...
那么哪个命令有利于在子文件夹中生成资源一次作为名称空间,其他作为资源?,我是正确的吗?
注意:它必须是如此长的路径!
答案 0 :(得分:1)
请试试
rails g scaffold Admin/Catalog/Parfume/Brand
它将按以下方式创建路线
namespace :admin do
namespace :catalog do
namespace :parfume do
resources :brands
end
end
end
您可以手动执行此操作。允许您拥有管理员和目录命名空间。在目录命名空间的旁边,您有parfume和品牌作为控制器。并假设用户是admin命名空间中的控制器。
因此,通过以下代码,您将创建parfume和品牌控制器。
rails g controller admin/catalog/parfume
rails g controller admin/catalog/brands
这将在您的应用程序中创建控制器。但是在路线文件中,您需要手动添加代码,如下所示
namespace :admin do
namespace :catalog do
resources :parfume
resources :brand
end
end
但是如果您将品牌作为parfume控制器的嵌套资源,那么您需要稍微改变路线
namespace :admin do
namespace :catalog do
resources :parfume do
resources :brand
end
end
end
然后,根据我们的示例,我们在admin命名空间中有一个用户控制器。所以我们需要在admin命名空间中创建一个用户控制器,以下是创建用户控制器的代码
rails g controller admin/users
除此之外,我们还需要在路径文件中添加一行代码。
namespace :admin do
namespace :catalog do
resources :parfume do
resources :brand
end
end
resources :users
end
脚手架创建控制器和模型,但根据您的要求,它在路径中创建额外的代码。因此,我们可以根据上面的例子进行优化。
关于创建模型,您可以通过以下命令
创建它rails g model YourModelName