我有我的運動模型內的下列範圍與無END_DATE處理:在日期範圍範圍
scope :dashboard_campaigns, ->(start_date, end_date, client_id) {where(client_id: client_id).where('start_date >= ? and end_date <= ?', start_date, end_date)}
此範圍在指定日期範圍內收集到campaigns
儀表板內使用。
有時,當用戶啓動一個活動中,end_date
不知道,因此nil
如果end_date
是nill,我們可以假設一個活動仍然活躍,因此應包含在最終的關係。
我只是不知道該怎麼寫。在嘗試並且未能在範圍聲明中測試零值之後,我現在正在考慮將記錄中的默認日期設置爲從現在開始的50年,直到它由用戶更新。
有沒有更優雅的方式來做到這一點,我失蹤了?
Postgres支持'infinity'。不知道Ruby是否支持這個,但是你可以試着'end_date <= coalesce(?,'infinity')' – 2015-03-31 06:08:19