在我的Rails应用程序中,我需要为某些资源定义两条不同的路径。我正在尝试使用scope
来确定范围和未范围的路由。因此我定义了:
scope path: '(:prefix)', :prefix => /my/ do
resources :users
end
现在可以通过/my/users/:id
或/users/:id paths
与我的用户联系。
问题是我需要URL帮助程序来提供正确的路径,具体取决于我用于访问页面的路径。当我使用/my/users/:id/edit
打开页面时,我需要链接到/my/users/:id
,当我打开/users/:id/edit
时,我需要链接到/users/:id
。更重要的是,我需要正确的工作表单,使用url_for
帮助程序来确定正确的操作。对于上述配置url_for @user
生成/25/users/25
(当@user.id == 25
时)。
问题是如何使url_for
保留用于访问网页的范围?
或许您可以建议不同的解决方案,以允许不同的URL到达某些资源并保留路径以进行直观导航?
答案 0 :(得分:0)
以下解决了我这方面的问题:
get '/some_path' => 'controller#action', somevar: 'blah'
scope path: '/my/' do
get '/some_path' => 'controller#action', somevar:'blahblah'
end
似乎如果路由共享相同的变量,则url_for使用它来区分歧义。