我有三個字段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. SerialPort.DataReceived重複訂閱/取消訂閱
- 4. 點擊一個DIV訂閱RSS訂閱
- 5. 訂閱和取消訂閱活動
- 6. 訂閱/取消訂閱VS Create/TakeUntil?
- 7. 如何取消訂閱socket.io訂閱?
- 8. 取消訂閱socket.io中的訂閱
- 9. 訂閱不存在「訂閱」類型
- 10. Rxjs - 重新訂閱取消訂閱Observable
- 11. 如何取消訂閱NServiceBus訂閱?
- 12. 訂閱的訂閱Skus - 許可頻道
- 13. paho-mqtt訂閱支票訂閱狀態
- 14. WooCommerce訂閱低於訂單
- 15. iOS自動續訂訂閱?
- 16. 嘗試與多用戶訂閱活動訂閱並訂購它
- 17. Instagram訂閱
- 18. RxSwift訂閱ControlEvent
- 19. 訂閱SSRS 2008
- 20. 條紋訂閱
- 21. Fitbit訂閱API
- 22. Redux Angular2訂閱
- 23. 訂閱功能
- 24. paypal訂閱
- 25. IBM Watson訂閱
- 26. 訂閱在PHP
- 27. Apollo GraphQL訂閱
- 28. 訂閱Qt中
- 29. 添加訂閱?
- 30. 持久訂閱
因此,如果我將來做了一個備用,那麼即使它尚未啓動,我也會將「active」屬性設置爲「active」 – MrYoshiji