Rails - 将路由前缀添加到特定目录

Rails - Add a route prefix to a specific directory

我有一个混乱的 rails 3 应用程序,它来自不同的开发人员,我需要重构它。

我想做的是将 "app" 的内容移动到名为 "classic".

的子文件夹中
app/classic

然后让所有 URL 都带有经典前缀,例如

localhost:3000/classic/wills/new

路由到 "app/classic" 文件夹内的控制器。

然后每个不包含经典前缀的常规 url - 以标准方式路由到 app/

这可以吗?到目前为止我唯一发现的是我可以在我的路由文件中添加一个范围。

scope(:path => '/classic')

但所有这些都需要为每个 URL 添加前缀。我真的不知道该怎么做!

在 route.rb 文件中:

#Of course, you have to configure the right http method.

get 'wills/new' => 'wills#new', as: 'to_classic_wills_new'

希望对您有所帮助!

这是一个路由命名空间。查看 Rails 从外到内的路由:http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

中的这一部分
namespace :classic do
  # your routes here
end

这将做 3 件事 -

  • 控制器文件的路径需要在 /app/controllers/classic/
  • 控制器的名称需要更改为 Classic::ControllerName
  • url 现在是 /classic/controller/action

这听起来像您想要的,但如果您不想要所有 3 个部分,您可以修改它以获得您想要的部分。