簡體   English   中英

在每個rake任務上,實際上在每個環境負載下,在FactoryGirl中運行rails代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM