[英]rails running code in FactoryGirl on every rake task, actually on every environment load
我們無法在新機器上運行rake db:schema:load
,因為在為rake任務加載Rails環境時,某個地方正在調用一個類方法,該方法試圖訪問db中的表,而該表顯然還不存在。
我發現它來自FactoryGirl定義。
對於其中兩個工廠,我們正在將location_id變量設置為世界location.id,如下所示
FactoryGirl.define do
factory :some_model do
....
....
cached_location_id Location.world.id
....
end
end
因此,當rails加載我們所有的代碼時,它立即運行Location.world
。 我認為這是FactoryGirl特有的。
如何解決呢?
因此,僅在要求工廠使用{ }
來創建模型時才將其更改為僅運行Location.world代碼,如下所示:
FactoryGirl.define do factory :some_model do .... .... cached_location_id {Location.world.id } .... end end
真是個哥!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.