make url_for保留范围

时间:2013-04-03 13:47:29

标签: ruby-on-rails routing scope helpers

在我的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到达某些资源并保留路径以进行直观导航?

1 个答案:

答案 0 :(得分:0)

以下解决了我这方面的问题:

get '/some_path' => 'controller#action',  somevar: 'blah'
scope path: '/my/' do
  get '/some_path' => 'controller#action', somevar:'blahblah'
end

似乎如果路由共享相同的变量,则url_for使用它来区分歧义。