glm*_*ndr 23 routing ruby-on-rails-3
我有一个模型的CRUD控制器.
这样做resources :foo
可以让我的路线/foo/:id
,等等调用行动.
我想添加一个用另一种语言翻译'foo'的路线.我们来说'toto'.所以我希望所有/toto/:id
等等路线的行为与/foo/:id
路线等完全相同.
我怎么能实现这一目标?
joh*_*ley 38
您可以添加新资源并将foo指定为控制器:
resources :toto, :controller=>"foo"
Run Code Online (Sandbox Code Playgroud)
这会将所有动作指向"foo",但是有一个问题.如果您使用foo_url或类似的东西,我认为您将遇到页面上的链接问题.因此,您必须找到一种基于"request.path"中的控制器以动态方式创建URL的方法.
fis*_*ben 23
这将允许您重命名用户看到的路径,但在代码中保留控制器的原始名称:
scope(:path_names => { :new => "neu", :edit => "bearbeiten" }) do
resources :categories, :path => "kategorien"
end
Run Code Online (Sandbox Code Playgroud)
如果我对您的理解正确,则只想使用其他路径即可。
resources :foo, path: 'toto'
Run Code Online (Sandbox Code Playgroud)
现在您将拥有:
GET /toto foo#index
GET /toto/:id foo#show
...
Run Code Online (Sandbox Code Playgroud)