NoMethodError: undefined method and for #ActiveRecord::Relation []

NoMethodError: undefined method and for #ActiveRecord::Relation []

我正在使用 Rails 5。我想编写一个带有 AND 的 where 子句,仅 return 结果符合两个条件。我试过这个

  new_orders = Order
    .joins(:line_items => { :shipping => :vendor })
    .where.not(
      :vendors => { :id => vendor_ids }
    )
  ).and( 
    Order.joins(:line_items).where(:holding => nil)
  )

但我得到了 NoMethodError: undefined method and for #ActiveRecord::Relation []. Did you mean? any?" error.

ActiveRecord Relation 没有可用的 and 方法。只有 or 方法可用。

对于您的查询,我认为这也应该有效

new_orders = Order.joins(:line_items => { :shipping => :vendor })
                  .where.not(:vendors => { :id => vendor_ids })
                  .where(:holding => nil)