2011-02-23 24 views
1

我試圖用Rails3中,發電機,工廠更換夾具代:夾具如何替換爲使用rails3-generators的工廠?

https://github.com/indirect/rails3-generators#readme

寶石都包含在我的Gemfile,並已安裝:

# Gemfile 
gem 'rails3-generators', :group => :development 

我增加了以下內容application.rb:

# application.rb 
config.generators do |g| 
    g.stylesheets false 
    g.fixture_replacement :factory_girl 
end 

尚'軌道g模型昆蟲'還在生成固定裝置('昆蟲.yml')。這是否適用於使用Rails 3.0.4和rails3-generators 0.17.4的其他人?

'rails g'顯示可用的新生成器(如Authlogic和Koala),但'rails g model'仍然列出了裝置並且不涉及工廠。

我還應該添加什麼才能讓它起作用?謝謝。

編輯:我運行了寶石的測試套件,其中包括一個測試,並通過。不知道爲什麼它不適用於我的應用程序。

編輯2:我再次嘗試一個測試項目,並得到相同的結果:夾具而不是工廠。如果有人可以確認這是否適用於Rails 3.0.4和rails3-generators 0.17.4,那也是有幫助的,因爲這意味着我的項目出錯了。

編輯3:它工作,如果我運行'rails g模型昆蟲-r factory_girl'。我認爲application.rb中的生成器配置應該考慮到這一點,所以這似乎是問題的根源。

回答

2

我周圍搜索發現以下,這可能有助於:

  1. 嘗試指定爲factory_girl的工廠目錄選項:

    config.generators do |g| 
        g.stylesheets false 
        g.fixture_replacement :factory_girl, :dir => "spec/factories" # or test/factories, as the case may be 
    end 
    
  2. 如果您使用Test::Unit,嘗試如下:

    config.generators do |g| 
        g.stylesheets false 
        g.test_framework :test_unit, :fixture_replacement => :factory_girl 
    end 
    

在這兩種情況下,您仍然需要使用rails3-generators寶石,儘管有一個推動功能進入factory_girl_rails

This Rails bug表示在某些時候,g.fixture_replacement代碼可能沒有正確工作。也許3.0.5版本的測試是按順序進行的。 :)

+1

嗚呼!感謝布蘭登,現在開始工作(OCD安慰)。我在發佈之前做了一堆搜索,但忘記搜索bug列表。我正在使用Test :: Unit(或者我覺得MiniTest 1.9.2),#2也有這個竅門。我還沒有嘗試3.0.5 ... – 2011-02-24 22:24:28