【发布时间】:2021-10-24 14:46:48
【问题描述】:
我有两个模型:
class Listing
has_many :shipping_selections
end
&
class ShippingSelection
belongs_to :listing
enum status: { incomplete: 0, complete: 1 }
end
我需要编写一个查询,该查询将返回没有任何附加 shipping_selections 且状态为“完成”的列表。
我尝试过这样的事情:
Listing.includes(:shipping_selections).where('shipping_selections.complete.any? != ?, true)
但是我收到以下错误: “ActiveRecord::PreparedStatementInvalid:绑定变量的数量错误(1 对 2)在:shipping_selections.complete.any? = ?”
好像不能在SQL语句中使用这样的ruby方法。
然后我尝试改用 SQL 语句,例如:
Listing.where('cardinality(shipping_selections.complete) != ?, 0')
然而这似乎也不起作用。
感谢您的帮助!
【问题讨论】:
-
为了澄清我想要退回的东西,我想要所有列表,除了那些具有“完成”状态的 shipping_selections 的列表。在返回的列表中应该包括根本没有 shipping_selections 的列表。
标签: ruby-on-rails ruby activerecord ruby-on-rails-5