有没有办法更改路由URL而不影响其指向的控制器和VIEWS中使用的路径

时间:2013-08-22 12:31:28

标签: ruby-on-rails ruby ruby-on-rails-3 routes

的routes.rb

scope :module => :abc do
  namespace :old_namespace do
    resources :posts 
  end
end

如何将old_namespace更改为new_namespace,以便在我的URL中我应该看到new_namespace。我有太多的观点,我使用以前的路线与* _path和* _url方法。我现在不想改变它们。是否有任何Rails方法可以做到这一点。

我尝试过的事情,

scope :module => :abc do
  namespace :new_namespace,:as => :old_namespace do
    resources :posts
  end
end

这给了我需要的URL的更改但是,给了我和错误  uninitialized constant Abc:NewNamespace

这是期望我有Abc:NewNamespace,虽然我希望这个使用旧常量,Abc:OldNamespace,Something Similiar:命名空间资源中的controller选项

2 个答案:

答案 0 :(得分:1)

你只需这样做:

scope module: 'abc/OldNamespace' do
  resources :posts, path: 'new_namespace/posts'
end

你在这里说,

  1. 使用abc::OldNamespace
  2. 使用new_namespace/posts作为posts资源的网址路径。
  3. 这也应该有效,如果不是这样的话,请允许我

答案 1 :(得分:0)

我用过这个,

namespace :new_namespace,:as => :old_namespace, :module => :old_namespace do

现在正在运作。