在Rails中更改名称空间

时间:2018-10-24 07:47:35

标签: ruby-on-rails routing namespaces

我有命名空间路由,例如

  

/ example / list /

namespace :example do
  resource :list
  ...
end

需要将其更改为

  

/ newexample / list /

我当然可以通过更改route.rb中的example => newexample来做到这一点,但是项目中广泛使用了模块 example 。因此,通过这种方法对其进行更改将需要更新几乎每个Controller,Js,CSS文件。

有什么方法可以在route.rb中映射newexample => example名称空间?或任何其他开箱即用的解决方案?

1 个答案:

答案 0 :(得分:7)

使用带path选项的名称空间时,可以指定路径。在您的示例中,您将具有以下内容:

namespace :example, path: 'newexample' do
  resources :list
end

您也可以像这样指定模块

namespace :newexample, module: :example do
  resources :list
end

创建的路由将相同(/newexample/list将映射到example模块)。

区别在于路由助手名称:对于第一个示例,您的助手将是example_lists_path,在第二个示例中,它将看起来像newexample_lists_path(这意味着您必须更新自己的链接)

如果您需要更多详细信息,也可以选中docs on scoping routes