2016-08-12 1 views
0

Ich habe eine interessante Situation, wo ich 2 Arten von MaintenanceOrders auflisten möchte.ActiveRecord Abfrage auf übergeordneten OR-Abfrage auf Selbst

  1. Für MaintenanceOrders, die ein rental_item_id Attribut verfügen, möchte ich sie nur aufzulisten, wenn die Mutter rental_item ‚s order eine status_id unvollständiger hat und wenn der MaintenanceOrder hat sich eine status_id von unvollständig.

    MaintenanceOrder.where.not(rental_item_id:nil).joins(rental_item: [:order]).where("orders.status_id is NULL").where(status_id:nil)

  2. Für MaintenanceOrders, die ein rental_item_id Attribut nicht haben, möchte ich sie nur aufzulisten, wenn die MaintenanceOrder selbst eine status_id unvollständiger hat.

    MaintenanceOrder.where(rental_item_id:nil).where(status_id:nil)

So wie Sie oben sehen können, habe ich den Code für beide, aber ich möchte sie zu einem einzigen #<ActiveRecord::Relation (nicht eines dieser Dinge Array) kombinieren. Wie würde ich das tun?

Antwort

Verwandte Themen