将路由指向默认控制器模块

时间:2014-12-01 19:50:11

标签: ruby-on-rails model-view-controller

我目前的情况是我的Rails应用程序中有很多Rails引擎。为了解决架构问题,我们开始使用一个模块来命名我们的模型/视图/控制器,使其远离应用程序中的其他Rails引擎,例如Devise,AlchemyCMS和Spree。

问题在于,当您为main_app创建新路线时,我发现我总是必须这样做:

get '/cart' => 'primary/orders#edit'

而不是:

get '/cart' => 'orders#edit'

我尝试使用命名空间,我认为它会有所帮助:

namespace :my_application, path: nil do
  get '/cart' => 'orders#edit'
end

这产生了我想要的路线,但它导致所有路线都如此:

main_app.my_application_cart_path

而不是:

main_app.cart_path

有没有人知道如何为路线提供默认的控制器

1 个答案:

答案 0 :(得分:1)

为什么不使用scope而不是namespace:

 scope '/my_application' do
   get '/cart' => 'orders#edit'
 end