Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails中使用名称空间模型维护REST_Ruby On Rails_Rest_Namespaces - Fatal编程技术网

Ruby on rails 在Rails中使用名称空间模型维护REST

Ruby on rails 在Rails中使用名称空间模型维护REST,ruby-on-rails,rest,namespaces,Ruby On Rails,Rest,Namespaces,我正在建立一个在线商店,我认为最好给各种复合部件命名。产品、订单、用户等 我目前对产品模块的定义和布局如下 产品::基础 基础产品本身定义了尺寸、类型和可用颜色 产品::类型 高级产品分类 产品::颜色 HABTM颜色与基底的关系 产品::单位 根据不同的数量和运输价格进行扩展 现在我的问题涉及控制器和路由。我希望模块显示为资源,并有一个模型(基础)作为“头”的排序。我已经设法让这一切顺利进行了 scope :module => "product" do resources :

我正在建立一个在线商店,我认为最好给各种复合部件命名。产品、订单、用户等

我目前对产品模块的定义和布局如下

产品::基础 基础产品本身定义了尺寸、类型和可用颜色

产品::类型 高级产品分类

产品::颜色 HABTM颜色与基底的关系

产品::单位 根据不同的数量和运输价格进行扩展

现在我的问题涉及控制器和路由。我希望模块显示为资源,并有一个模型(基础)作为“头”的排序。我已经设法让这一切顺利进行了

  scope :module => "product" do
    resources :base, path: "product"
  end
它从耙路径中产生

  base_index GET    /product(.:format)          product/base#index
           POST   /product(.:format)          product/base#create
  new_base GET    /product/new(.:format)      product/base#new
 edit_base GET    /product/:id/edit(.:format) product/base#edit
      base GET    /product/:id(.:format)      product/base#show
           PUT    /product/:id(.:format)      product/base#update
           DELETE /product/:id(.:format)      product/base#destroy
这正是我想要的行为,但我的问题是,这种方法是否安全且正确?我宁愿现在就被告知我搞错了,也不愿再继续下去


一如既往地感谢您。

这是一种宁静,是的,但也请尝试一下:

Blah::Application.routes.draw do
  namespace :product do
    resource :base
  end  
end
给你:

     product_base POST   /product/base(.:format)      product/bases#create
 new_product_base GET    /product/base/new(.:format)  product/bases#new
edit_product_base GET    /product/base/edit(.:format) product/bases#edit
                  GET    /product/base(.:format)      product/bases#show
                  PUT    /product/base(.:format)      product/bases#update
                  DELETE /product/base(.:format)      product/bases#destroy

谢谢V船长!我确实让它也像这样工作,但我想让复合类“隐藏起来”,可以这么说。我认为你的类过于复杂了。基本上,不要以这种方式继承控制器,并将“模块”作为单独的模型进行维护。然后在它们之间建立关联,或者在产品模型中将它们聚合在一起。