0
在控制檯我可以查詢我的Job
表所示:jobs = Job.where("created_at <= ?", Time.now)
的Rails 3.2 - ActiveRecord的`where`與方法查詢呼籲屬性
我想這是今年創建的作業。如果我得到一個人的工作,我可以使用job.created_at.year
,但如果我嘗試使用jobs = Job.where("created_at.year = ?", 2014)
我得到以下錯誤:
SQLite3::SQLException: no such column: created_at.year
我想我明白這個問題是我想要的Ruby混合到一個SQL查詢,但我不確定如何避開它。理解這將幫助我創建更強大的ActiveRecord查詢。
編輯我發現我能做到使用.map
喜歡所以這個:Job.all.map { |j| j if j.created_at.year == 2014 }
。如果我想收集需要在屬性上調用方法的作業集合,那麼這是否是最好的方法?
或者更簡單地使用MySQL的本地'YEAR()'函數:' 「?YEAR(created_at)=」'這將接受'Time.now.year' – 2014-11-05 18:42:30
@MichaelBerkowski:哦,有趣。感謝您的投入。 :) – Surya 2014-11-05 18:44:54
@ nikkon226:感謝您的編輯。 – Surya 2014-11-05 18:54:10