2013-02-18 81 views
0

我已经继承了特定的生成器并编辑了该方法,因此创建了_form的规范。还有的解决方案:Rails3自定义生成器被忽略

# 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 

如果我做rails g rspec_modded:脚手架是在列表,如果手动(rails g rspec_modded:scaffold test)称为实际工作。

# config/application.rb 
# ... 
config.generators do |g| 
    g.test_framework :rspec_modded, :fixture => false, fixture_replacement: nil 
    g.fallbacks[:rspec_modded] = :rspec 
end 

对于我所知道的,每个hook_for :test_framework应该叫rspec_modded发生器和RSpec应该管理什么,我还没有(如模型)。但它不起作用:出于某种原因,unit_test生成器启动了!什么事?我真的不明白......

PS:我用Rails 3.2.6

回答

0

挖掘和尝试了很多之后,我成立这factory_girl_rails创业板的这种奇怪的行为的罪魁祸首! 问题是在文件lib/factory_girl_rails/railtie.rb,它有检查rspec的是test_framework,如果不是,暴力破解来unit_test -_-

,知道我看到他们有固定的初始...

但是,为什么此配置会覆盖用户定义的配置?我认为这应该是最重要的...有人可以澄清它吗?


挖掘的另一位后,似乎把代码生成器在初始化覆盖用户之一,但如果这段代码是Railtie类定义的身体,一切运作良好...