1
我在FactoryGirl的困難情況下可能可以幫助我解決問題。該代碼是這樣的:在FactoryGirl的鉤子中使用關聯
class Bet
belongs_to :market
belongs_to :option
has_one :market, :through => :option
has_one :event, :through => :market
before_validation :set_event_date
scope :by_event_date, order(arel_table[:event_date].desc)
def set_event_date
self.event_date = event.date
end
end
我需要兌現的EVENT_DATE屬性的投注,因爲範圍by_event_date
是沒有物化成本太高。我運行FactoryGirl.create :bet
時出現問題。掛鉤被執行,但bet.event
爲零,因此引發異常。無論如何要配置FactoryGirl真正創建關聯的對象嗎?
無效。在第一個示例中,由於它是直通關聯,因此無法直接從工廠訪問該事件。在第二個之後,在對象before_validation之後執行(:build)之後。 – Gawyn
檢查我的更新,使用市場工廠,然後 – arieljuod
我已經完成了這項工作,它也不起作用。 :P我發現使其工作的唯一方法是遵循'set_event_date'方法中的完整「路徑」:'self.event_date = option.market.event.date'。但它非常難看。 – Gawyn