我想查詢我的數據庫在某一天創建的任意模型的對象,有什麼好辦法做到這一點?搜索在特定日期創建的數據庫對象?
在一個sql查詢中,我使用以下來查詢昨天創建的對象。 (現在()AT TIME ZONE'EDT'):: DATE - 和'EDT'):: DATE
我想用ActiveRecord調用在ruby中做同樣的事情。
謝謝!
我想查詢我的數據庫在某一天創建的任意模型的對象,有什麼好辦法做到這一點?搜索在特定日期創建的數據庫對象?
在一個sql查詢中,我使用以下來查詢昨天創建的對象。 (現在()AT TIME ZONE'EDT'):: DATE - 和'EDT'):: DATE
我想用ActiveRecord調用在ruby中做同樣的事情。
謝謝!
我會做數據庫上的演員和選擇當前日期還有,而不是用範圍來做。如果它在更多的地方使用,那麼一個這將是很好創建
Model.where("DATE(created_at) = ?", Date.today)
:你可以用DATE(created_at)(將導致「2013年11月1日」),接着注入在哪裏帕拉姆做到這一點一個範圍爲Morner建議:
scope :created_today { where("DATE(created_at) = ?", Date.today) }
用名:
scope :created_today_with_name lambda do |name|
where("DATE(created_at) = ? AND name = ?", Date.today, name)
end
或鏈條它:
scope :created_today_with_name lambda do |name|
where("DATE(created_at) = ?", Date.today).where(name: name)
end
然後稱其爲:
Model.created_today_with_name('Joe')
一個例子,作爲一個範圍,所有項目今天創建的:
scope :created_today, -> { where('created_at between ? AND ?', Time.zone.now.beginning_of_day, Time.zone.now.end_of_day) }
更多信息在PostgreSQL site
沒錯這是一個有點輕。讓我編輯它來澄清答案。 – Novae
我知道這是另一個問題,但我怎麼能結合這個命令與另一個,以便我可以得到今天創建的所有對象,並有一個名稱包含「富」 – DogNibbler
沒問題看到我調整的答案。 – Novae