2013-02-18 80 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類定義的身體,一切運作良好...