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 个部分,您可以修改它以获得您想要的部分。
我有一个混乱的 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 个部分,您可以修改它以获得您想要的部分。