ActiveRecord查询父OR查询self

时间:2016-08-12 01:24:02

标签: ruby-on-rails activerecord

我有一个有趣的情况,我想列出两种rental_item_id

  1. 对于具有rental_item属性的order,我只想在父status_id MaintenanceOrder status_id MaintenanceOrder.where.not(rental_item_id:nil).joins(rental_item: [:order]).where("orders.status_id is NULL").where(status_id:nil)时列出它们如果MaintenanceOrders本身的rental_item_id不完整,则表示不完整。

    MaintenanceOrder

  2. 对于没有status_id属性的MaintenanceOrder.where(rental_item_id:nil).where(status_id:nil),如果#<ActiveRecord::Relation本身的{{1}}不完整,我只想列出它们。

    {{1}}

  3. 正如您在上面所看到的,我有两者的代码,但我想将它们组合成一个{{1}}(不是那些数组之一)。我该怎么做?

1 个答案:

答案 0 :(得分:0)

听起来像has_one :through关联http://guides.rubyonrails.org/association_basics.html#the-has-one-through-association

的情况

在MaintenanceOrder类中,您定义has_one :order添加has_one:status,通过:: order . Then you can simply do MaintenanceOrder.status.present?`