我想要一个名为“portal”的命名空间 Controller 。
其中将嵌套资源,例如公司和产品。
我想要这样的路线:
/portal/:company_id/product/:id
工作
我可以得到
/portal/company/:company_id/product/:id
可以工作,但想删除 url 中的“公司”
希望这很清楚。请记住,我需要命名空间模块门户存在。
最佳答案
我认为您可以使用 scope
来实现您想要的。大概是这样的:
namespace "portal" do
scope ":company_id" do
resources :products
end
end
这将生成以下路由:
portal_products GET /portal/:company_id/products(.:format) {:action=>"index", :controller=>"portal/products"}
POST /portal/:company_id/products(.:format) {:action=>"create", :controller=>"portal/products"}
new_portal_product GET /portal/:company_id/products/new(.:format) {:action=>"new", :controller=>"portal/products"}
edit_portal_product GET /portal/:company_id/products/:id/edit(.:format) {:action=>"edit", :controller=>"portal/products"}
portal_product GET /portal/:company_id/products/:id(.:format) {:action=>"show", :controller=>"portal/products"}
PUT /portal/:company_id/products/:id(.:format) {:action=>"update", :controller=>"portal/products"}
DELETE /portal/:company_id/products/:id(.:format) {:action=>"destroy", :controller=>"portal/products"}
编辑:不小心使用了资源而不是资源。现在修好了。
关于ruby-on-rails - Rails 3 路由和命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5965732/