我想在我的引擎中使Rails控制器规范工作。控制器测试看起来是这样的:Rails引擎无法找到模板
module Notes
describe NotesController do
routes { Notes::Engine.routes }
it 'renders index' do
get 'index'
end
end
end
目前我使用与Combustion gem所以我的虚拟配置路由产生的仿真是:
# spec/internal/config/routes.rb
require 'notes'
require Notes::Engine.root.join('config/routes')
Rails.application.routes.draw do
mount Notes::Engine => '/', as: 'notes'
# mount Notes::Engine => '/notes'
end
问题1:
我想通过安装引擎避免将引擎路由复制粘贴到虚拟配置文件中。但是,我无法找到正确的配置,以使routes { Notes::Engine.routes }
行符合我的规格。
问题2:试图找到app/views
文件夹我的Rails假人./spec/internal
时
控制器规格失败。到目前为止,我通过从spec/internal/app
到我的真实./app
的符号链接解决了问题。
是否有一个更干净的方式来找到我的看法?我希望Rails dummy可以直接从引擎中提取应用程序文件夹,但不会在没有链接的情况下发生。
Thanks @pat!我确实有'Rails :: Engine'子类。否则'Notes :: Engine.routes'这行不起作用。燃烧readme提到'routes.rb'文件,但我使用上面的方法来避免代码重复。 – SystematicFrank 2015-04-04 13:25:19
我想可能只是将'config/routes.rb'文件和'app'文件夹的符号链接从生成的虚拟文件生成到我的引擎。它的作品,但它是如此肮脏的黑客,我想知道是否有更好的方法。 – SystematicFrank 2015-04-04 13:27:20
顺便说一句。符号链接方式是我解决这里提到的两个问题的方法:https:// github。com/pat/combustion#using-actioncontroller-and-actionview – SystematicFrank 2015-04-04 13:32:25