0
我有一個after_initialize
回調,我希望發生在模型創建或實例化時直接,而不是通過其他地方的關聯加載。事情是這樣的:如何通過Rails中的關聯區分直接實例化和實例化?
after_initialize :check_status, if: "instantiated_directly?"
這樣MyModel.find(1)
將觸發檢查,但other_model.my_model
不會。
狀態是一個長進程的狀態變量,只需要在一些長時間運行的進程開始之前進行驗證。如果進程似乎正在進行,我想阻止用戶加載模型。我希望仍然能夠在其他地方出於各種其他原因訪問該模型中的屬性。
驗證只會在保存時起作用。我擔心模型的後續負載。該過程異步更新模型中的各個字段。如果這個過程以某種方式中斷,我不希望第二天再次開始計劃的過程。 – jordanpg
無論如何,我對原始問題的答案感到好奇,與這種情況的具體情況無關。 – jordanpg
你可以擴展ActiveRecord來做你想做的事情,但我保證你會在屁股上咬你。只要做對了,這很容易,而不是堅持顛覆你使用的工具。 – coreyward