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

时间:2015-11-10 18:06:10

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

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

我想要做的是将“app”的内容移动到名为“classic”的子文件夹中。

app/classic

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

localhost:3000/classic/wills/new

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

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

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

scope(:path => '/classic')

但所有这一切都要求每个URL都有一个前缀。我真的不知道怎么回事!

2 个答案:

答案 0 :(得分:1)

这是一个路由名称空间。从Outside In:http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

查看Rails路由中的这一部分
namespace :classic do
  # your routes here
end

这将做3件事 -

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

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

答案 1 :(得分:0)

在route.rb文件中:

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

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

希望这有帮助!