【发布时间】:2014-10-23 19:39:11
【问题描述】:
当我有这样的模型时,
class Order < ActiveRecord::Base
serialize :shipping_lines
...
end
如何找到shipping_lines 为空的所有记录?如果我这样做,
Order.select(order.shipping_lines).limit(5)
我明白了,
=> [#<Order id: nil, shipping_lines: [#<ShippingLine:0x007f8c5d10ced0>]>,
#<Order id: nil, shipping_lines: [#<ShippingLine:0x007f8c6ef84718>]>,
#<Order id: nil, shipping_lines: []>,
#<Order id: nil, shipping_lines: []>,
#<Order id: nil, shipping_lines: []>
但随后查询Order.where(shipping_lines: []) 产生[] 并在同一查询上调用to_sql 产生=> "SELECT \"orders\".* FROM \"orders\" WHERE 1=0"
我应该如何只选择具有默认值或空数组的订单作为他们的运输线?
【问题讨论】:
-
当然我也试过
where(shipping_lines: nil),但是这个总是空的。
标签: ruby-on-rails-4 rails-activerecord arel