Pas*_*auf 8 routing ruby-on-rails internationalization ruby-on-rails-3
所以我想让Rails为我处理特定于语言环境的路由,例如
/en/companies
/nl/companies
Run Code Online (Sandbox Code Playgroud)
这对路线定义很有用:
scope "(:locale)", :locale => /en|nl/ do
resources :companies
end
Run Code Online (Sandbox Code Playgroud)
但与此同时,公司拥有浅层嵌套资源,如下所示:
scope "(:locale)", :locale => /en|nl/ do
resources :companies, :shallow => true do
resources :pages
end
end
Run Code Online (Sandbox Code Playgroud)
这允许路径/en/companies/1/pages,但不是路径/en/pages/1/edit.由于"浅"也剥离了路径的"语言环境"部分,似乎我被困住了/pages/1/edit?locale=en.有没有办法让Rails以我可以使用的方式处理带有语言环境的浅层嵌套资源/en/pages/1/edit?
Pas*_*auf 14
没错!我在API文档中找到了答案.神奇的是在:shallow_path关键字中,在上面的示例中,它的工作原理如下:
scope :path => "(:locale)", :shallow_path => "(:locale)", :locale => /en|nl/ do
resources :companies, :shallow => true do
resources :pages
end
end
Run Code Online (Sandbox Code Playgroud)
现在,一个像/en/pages/1/edit工作完美的URL !
| 归档时间: |
|
| 查看次数: |
3832 次 |
| 最近记录: |