【发布时间】:2020-11-06 14:33:02
【问题描述】:
我有Venue、Review 和Voucher 模型。一个场地has_many 评论和评论has_one 凭证。
凭证有一个布尔值claimed 字段。
我正在尝试构建一个查询以选择某个日期之前的所有 claimed: true 凭证,并返回该查询的长度。
到目前为止,我已经尝试了以下几种查询:
# @venue is an instance of a Venue
@venue.reviews.joins(:voucher)
.where(vouchers: { claimed: true })
.where("created_at < ?", Date.today.beginning_of_week - 7)
.length
但是我得到一个模糊的ActiveRecord::StatementInvalid 错误,我的.length 被突出显示。当我在控制台中尝试上面没有.length 的查询时,我得到一个<Review::ActiveRecord_AssociationRelation>
【问题讨论】:
-
“返回该查询的长度”是什么意思?您是否尝试获取记录数?如果是这样,请将
length替换为count -
@Benj 我也试过用
length代替count,但我得到了同样的StatementInvalid错误 -
这里的实际错误信息是什么?请提供一个实际可重现的模型示例,让我们真正开始减少潜在原因。
标签: ruby-on-rails postgresql activerecord