我有一个 Rails 3.2.15 应用程序,在顶部安装了一个 Engine,如下所示routes.rb
:
mount Service::Engine => '/'
在测试我的应用程序时,我想为我的引擎使用路由 url_helpers,如果该路由不存在,则回退到主应用程序。
例如,我在主应用程序(rake routes
输出)中有这条路线,它在引擎中不存在:
manager_account GET /manager/accounts/:id(.:format) manager_accounts#show
我将应用程序和引擎的 url_helpers 包括在spec_helper.rb
:
RSpec.configure do |config|
config.include Service::Engine.routes.url_helpers, type: :feature
config.include Rails.application.routes.url_helpers, type: :feature
end
我的问题是,当我尝试调用manager_account_path(account)
我的规范时,我收到以下错误:
ActionController::RoutingError:
No route matches {:action=>"show", :controller=>"manager_accounts", :id=>...
如果我这样称呼它,main_app.manager_account_path(account)
那么它会成功,但我真的很想避免每次都指定它。有什么方法可以设置它,我可以使用我的 url_helpers 以便如果引擎中不存在路由,它将回退到基本应用程序?