2
내가 같은 모델을 가지고,비어있는 직렬화 된 필드가있는 모델을 어떻게 쿼리합니까?
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: [])
생산량
[]
및
=> "SELECT \"orders\".* FROM \"orders\" WHERE 1=0"
가 어떻게 그냥 주문을 선택 가야한다 동일한 쿼리 수율에 to_sql
를 호출 출하 라인에 기본값이 있거나 빈 배열이있는 경우?
Order.where(shipping_lines: [].to_yaml)
더러운 해킹처럼 보이지만 적어도 문제가 해결 :
물론 나는'where (shipping_lines : nil)'을 시도했지만 항상 비어 있습니다. – Ziggy