我目前的情况是我的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
有没有人知道如何为路线提供默认的控制器?
答案 0 :(得分:1)
为什么不使用scope而不是namespace:
scope '/my_application' do
get '/cart' => 'orders#edit'
end