【发布时间】:2014-11-05 18:36:58
【问题描述】:
在控制台中,我可以像这样查询我的Job 表:jobs = Job.where("created_at <= ?", Time.now)
我想获得今年创造的工作。如果我得到一份单独的工作,我可以使用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 ruby-on-rails ruby database activerecord