Ruby on rails 在Rails中使用名称空间模型维护REST
我正在建立一个在线商店,我认为最好给各种复合部件命名。产品、订单、用户等 我目前对产品模块的定义和布局如下 产品::基础 基础产品本身定义了尺寸、类型和可用颜色 产品::类型 高级产品分类 产品::颜色 HABTM颜色与基底的关系 产品::单位 根据不同的数量和运输价格进行扩展 现在我的问题涉及控制器和路由。我希望模块显示为资源,并有一个模型(基础)作为“头”的排序。我已经设法让这一切顺利进行了Ruby on rails 在Rails中使用名称空间模型维护REST,ruby-on-rails,rest,namespaces,Ruby On Rails,Rest,Namespaces,我正在建立一个在线商店,我认为最好给各种复合部件命名。产品、订单、用户等 我目前对产品模块的定义和布局如下 产品::基础 基础产品本身定义了尺寸、类型和可用颜色 产品::类型 高级产品分类 产品::颜色 HABTM颜色与基底的关系 产品::单位 根据不同的数量和运输价格进行扩展 现在我的问题涉及控制器和路由。我希望模块显示为资源,并有一个模型(基础)作为“头”的排序。我已经设法让这一切顺利进行了 scope :module => "product" do resources :
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船长!我确实让它也像这样工作,但我想让复合类“隐藏起来”,可以这么说。我认为你的类过于复杂了。基本上,不要以这种方式继承控制器,并将“模块”作为单独的模型进行维护。然后在它们之间建立关联,或者在产品模型中将它们聚合在一起。