Ruby on rails 3.2 忽略Rails3自定义生成器
我继承了一个特定的生成器并编辑了该方法,以便为_表单创建规范。有一个解决方案:Ruby on rails 3.2 忽略Rails3自定义生成器,ruby-on-rails-3.2,generator,Ruby On Rails 3.2,Generator,我继承了一个特定的生成器并编辑了该方法,以便为_表单创建规范。有一个解决方案: # lib/generators/rspec_modded/scaffold/scaffold_generator.rb require 'generators/rspec/scaffold/scaffold_generator.rb' module RspecModded module Generators class ScaffoldGenerator < Rspec::Generators::
# lib/generators/rspec_modded/scaffold/scaffold_generator.rb
require 'generators/rspec/scaffold/scaffold_generator.rb'
module RspecModded
module Generators
class ScaffoldGenerator < Rspec::Generators::ScaffoldGenerator
def generate_view_specs
super
copy_view :_form
end
end
end
end
据我所知,每个hook\u For:test\u framework
都应该调用rspec\u modded generator,rspec应该管理我没有的(比如model)。但它不起作用:出于某种原因,单元测试生成器启动了!怎么了?我真的不明白
PS:我正在使用rails 3.2.6经过大量的挖掘和尝试,我发现
factory\u girl\u rails
gem是这种奇怪行为的罪魁祸首!
问题出在文件lib/factory\u girl\u rails/railtie.rb
中,它有一个初始值设定项,用于检查rspec是否是测试框架,如果不是,则使用bruteforce进行单元测试-_-
我知道他们已经修好了
但是,为什么此配置会覆盖用户定义的配置?我认为这一个应该有最高优先级。。。有人能澄清吗
经过进一步挖掘,似乎将生成器的代码放在初始值设定项中会覆盖用户的代码,但如果该代码段位于Railtie类定义的主体中,则所有代码都可以正常工作
# config/application.rb
# ...
config.generators do |g|
g.test_framework :rspec_modded, :fixture => false, fixture_replacement: nil
g.fallbacks[:rspec_modded] = :rspec
end