我正在构建一个在线商店,并认为最好为各个复合部件命名。产品、订单、用户等...
我目前的产品模块定义和布局如下
产品::基础 基础产品本身定义尺寸、类型和可用颜色
产品::类型 高级产品分类
产品::颜色 HABTM颜色与Base的关系
产品::单位 可根据不同数量和运费进行扩展
现在我的问题与 Controller 和路由有关。我希望该模块显示为资源,并将其中一个模型(基础)作为“头部”。我已经成功地让它与
一起工作 scope :module => "product" do
resources :base, path: "product"
end
从 rake route 产生
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
这正是我想要的行为,但我的问题是,这种方法是 RESTful 且正确的吗?我宁愿现在被告知我做错了,也不愿进一步了解。 p>
一如既往的感谢。
最佳答案
这是 RESTful,是的,但也试试这个:
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
关于ruby-on-rails - 在 Rails 中使用命名空间模型维护 REST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16970861/