我有三個字段active
,start_suscription
,end_suscription
,active is boolean
我F IT是真實的,因爲訂閱未完成,我的問題是如何使導軌自動將其更改爲模型假'訂閱結束時,在django這很容易但我只是開始與軌道,我不知道。訂閱
Q
訂閱
1
A
回答
2
,我建議你不要使用另一列到「緩存」,它可以很容易地計算出一個信息:
如果刪除列active
,你可以決定是否一個記錄是活動的定義實例方法active?
:
# in your model
def active?(as_of_date = Date.current)
(start_suscription..end_suscription).include?(as_of_date)
end
# usage
instance = YourModel.new(start_suscription: Date.yesterday, end_suscription: Date.tomorrow)
instance.active? # => true
instance.active?(Date.current + 1.week) # => false
要獲得所有活動記錄,做一個範圍:
scope :active, -> (as_of_date = Date.current) { where('? BETWEEN start_suscription AND end_suscription', as_of_date) }
# usage
YourModel.active
YourModel.active(Date.yesterday)
如果您想堅持使用緩存列(我強烈建議您不要),您需要一名工作人員(每X時間觸發一次)抓取所有現在處於非活動狀態的記錄,並更新其active
列。
0
如果活動是數據庫字段,你可以在你的訂閱模式創建一個回調像
before_save :set_active
def set_active
self.active = self.start_subscription >= Date.today and self.end_suscription <= Date.today
end
像吉井先生說:積極不應該是一個數據庫字段。如果是,並且你不想改變它,你應該在每個請求或日常任務中觸摸記錄。
相關問題
- 1. 訂閱取消訂閱()
- 2. Angular2在訂閱內訂閱
- 3. iOS應用程序訂閱 - 按月訂閱每年訂閱?
- 4. 訂閱
- 5. 翻閱RSS訂閱
- 6. 使用dj-stripe訂閱多個訂閱
- 7. 如何取消訂閱socket.io訂閱?
- 8. paho-mqtt訂閱支票訂閱狀態
- 9. Rxjs - 重新訂閱取消訂閱Observable
- 10. 條帶訂閱 - 更新過期訂閱
- 11. 如何取消訂閱Weak訂閱MvvmCross
- 12. 訂閱/取消訂閱VS Create/TakeUntil?
- 13. 允許Feedburner訂閱xml訂閱源
- 14. 流星訂閱覆蓋舊訂閱嗎?
- 15. 取消訂閱/訂閱活動危險?
- 16. 訂閱和取消訂閱活動
- 17. 訂閱的訂閱Skus - 許可頻道
- 18. 如何取消訂閱NServiceBus訂閱?
- 19. 訂閱Angular的另一個訂閱
- 20. 動態訂閱/取消訂閱活動
- 21. SerialPort.DataReceived重複訂閱/取消訂閱
- 22. 訂閱不存在「訂閱」類型
- 23. 點擊一個DIV訂閱RSS訂閱
- 24. 取消訂閱socket.io中的訂閱
- 25. iOS自動續訂訂閱?
- 26. WooCommerce訂閱低於訂單
- 27. 嘗試與多用戶訂閱活動訂閱並訂購它
- 28. 訂閱框架
- 29. 訂閱msmq
- 30. Netsuite訂閱Restlet
因此,如果我將來做了一個備用,那麼即使它尚未啓動,我也會將「active」屬性設置爲「active」 – MrYoshiji