0

我无法理解如何在命名空间中生成资源,以及如何在资源中生成资源:子文件夹有问题...我如何在 Rails 控制器和视图中生成此类路由:

  namespace :admin do
    namespace :catalogs do  
      namespace :parfume do  
        resource :brand do  
          resource :models do  

我这样尝试:

rails g 脚手架 Admin::Catalog

ETC...

rails g 脚手架 Admin::Catalog::To::Brand

但是在路线中,我看到rails正在生成许多此类路线:

  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 生成器如何......

那么哪个命令将有利于在子文件夹中生成资源,一次作为命名空间,另一次作为资源?,我走对了吗?

注意:一定是这么长的路径!

4

1 回答 1

1

请尝试一下

rails g scaffold Admin/Catalog/Parfume/Brand

它将创建如下路线

namespace :admin do
    namespace :catalog do
      namespace :parfume do
        resources :brands
      end
    end
  end

您可以手动完成。让您拥有管理员和目录命名空间。在目录名称空间中,您将香水和品牌作为控制器。并假设 users 是 admin 命名空间中的控制器。

因此,通过以下代码,您将创建香水和品牌控制器。

rails g controller admin/catalog/parfume
rails g controller admin/catalog/brands

这将在您的应用程序中创建控制器。但是在路由文件中,您需要手动添加代码,如下所示

namespace :admin do
    namespace :catalog do
      resources :parfume
      resources :brand
    end
  end

但是如果你有品牌作为香水控制器的嵌套资源,那么你需要稍微改变一下路由如下

namespace :admin do
    namespace :catalog do
      resources :parfume do
        resources :brand
      end
    end
  end

然后,根据我们的示例,我们在 admin 命名空间中有一个 users 控制器。所以我们需要在 admin 命名空间中创建一个 users 控制器,下面是创建 users 控制器的代码

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
于 2013-08-01T10:28:54.377 回答