2011-11-10 90 views
5

我試圖用工廠女孩在rake任務是這樣的:使用耙子任務中factory_girl - 讓未初始化的常量

require 'factory_girl' 
require File.expand_path("spec/factories.rb") 

namespace :users do 

    desc "Create sample users for use in development" 
    task :create_sample_users => :environment do 
    Factory(:user, :email => "[email protected]") 
    Factory(:approved_user, :email => "[email protected]") 
    end 

end 

然而,當我運行rake users:create_sample_users我得到的錯誤uninitialized constant Entry(Entry是否是名我的應用程序的類之一)。

誰能告訴我如何讓工廠女孩看我的課?它在我的測試中工作正常,只是在我的耙子任務中失敗。

回答

10

我猜Rails沒有在你要求工廠的地方加載你的模型。試試這個:

require 'factory_girl' 

namespace :users do 

    desc "Create sample users for use in development" 
    task :create_sample_users => :environment do 
    require File.expand_path("spec/factories.rb") 
    Factory(:user, :email => "[email protected]") 
    Factory(:approved_user, :email => "[email protected]") 
    end 

end 
+1

謝謝 - 已整理了!作爲獎勵,你知道我可以放在哪裏嗎?需要File.expand_path(「spec/factories.rb」)'所以我不必將它包含在每個任務中?再次感謝。 – Mike

0

@ dmcnally的回答對我不起作用,因爲我得到了奇怪的常量錯誤沒找到。相反,我解決它通過炮擊了以軌道亞軍:

sh "rails runner 'FactoryGirl.create :user'" 
相關問題