在Rails中更改名称空间

Swa*_*nil 1 routing namespaces ruby-on-rails

我有像名称空间一样的路由器

/例如/列表/

namespace :example do
  resource :list
  ...
end
Run Code Online (Sandbox Code Playgroud)

需要改变它

/ newexample /列表/

我当然可以通过在routes.rb中更改example => newexample来实现,但模块示例在项目中大量使用.因此,通过此方法更改它将需要更新几乎每个Controller,Js,CSS文件.

有没有办法在routes.rb中映射newexample => example namespace?或任何其他开箱即用的解决方案?

lde*_*eld 7

使用带有该path选项的命名空间时,可以指定路径.在你的例子中你会有这样的事情:

namespace :example, path: 'newexample' do
  resources :list
end
Run Code Online (Sandbox Code Playgroud)

您也可以指定模块,就像这样

namespace :newexample, module: :example do
  resources :list
end
Run Code Online (Sandbox Code Playgroud)

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

不同之处在于路径帮助器名称:对于第一个示例,您的助手将是example_lists_path,在第二个示例中,它将看起来像newexample_lists_path(这意味着您必须更新视图中的链接)

如果您需要更详细的信息,还可以查看范围路线上文档