Ruby on rails 路由:在控制器资源之前加上项目名称前缀
我正在尝试在我的Rails 3应用程序中使用以下路径 场景:Ruby on rails 路由:在控制器资源之前加上项目名称前缀,ruby-on-rails,routing,routes,Ruby On Rails,Routing,Routes,我正在尝试在我的Rails 3应用程序中使用以下路径 场景: 我的应用程序中有以下控制器: 实践 医生 病人 处方 放置:routes.rb中的每个资源为我提供来自 example.com/practices example.com/doctors/1/edit等 然而,我想要的是以下资源丰富的路线,例如: example.com/james_practice/docs转换为医生控制器 example.com/james\u practice/awesome\u处方路由到处方控制器等
我的应用程序中有以下控制器:
- 实践
- 医生
- 病人
- 处方
- example.com/practices
- example.com/doctors/1/edit等
- example.com/james_practice/docs转换为医生控制器
- example.com/james\u practice/awesome\u处方路由到处方控制器等
这两个都让我可以访问:机构名称,并通过所有助手(如编辑文档、路径(医生))进一步路由正确的控制器
resources :prescriptions, :path => "/:practice/awesome_prescriptions"
但是,尽管它在“rake routes”中显示了正确的路由,但它仍然不能像预期的那样工作。map.resources只是一种模式,更像是一种快捷方式。如果您想拥有示例中的URL,您应该使用“命名路由”。Rails 2.x的一个好的屏幕广播: 编辑:阅读Rails教程中的第3.2节: p、 你还将面临一个案例,人们在他们的名字中使用“.”,这将导致问题。 这是我的“标签”路线
map.resources:tags,:requirements=>{:id=>%r([^/;,?]+)}
我想这就是您要寻找的路线:
scope :path => ":practice" do
resources :docs, :controller => "doctors"
resources :awesome_prescriptions, :controller => "prescriptions"
end
顺便说一句,你没有给我举病人的例子,所以我没有把它放在那里。我试过按指定的路线走。但这意味着我必须写出该路线的每个用例,包括每个控制器的所有put/delete等请求?谢谢,这就是我的意思。“范围:路径”似乎是我不知道的魔法。