Rails: ActiveRecord Query с ассоциациями и оператором OR

Я не могу найти "Rails-Way" для следующего запроса:

Вот мои определения модели:

class Backend::Order < ActiveRecord::Base
  has_one :backend_order_filter, :class_name => 'Backend::OrderFilter', :dependent => :destroy

class Backend::OrderFilter < ActiveRecord::Base
  belongs_to :backend_order, :class_name => 'Backend::Order', :foreign_key => 'order_id'

Вот мой сырой рабочий sql-запрос:

Backend::Order.find_by_sql(
    "SELECT `backend_orders`.*,`backend_order_filters`.*,`backend_customers`.*
      FROM `backend_orders`
      LEFT JOIN `backend_order_filters` ON (`backend_orders`.`id` = `backend_order_filters`.`order_id`)
      WHERE
          (`backend_orders`.`order_status` IN ('OK', 'AO') OR `backend_orders`.`order_status` IS NULL) AND
          (`backend_order_filters`.`financing` = 1 OR (`backend_orders`.`price` - `backend_orders`.`balance`) <= 0)AND
          `backend_orders`.`delivery_number` IN ('21','22') AND (`backend_order_filters`.`places_of_delivery` = 1)"
)

Я пытался сделать это с помощью Arel-таблиц из-за оператора OR между "Backend::Order" и "Backend::OrderFilter", но я не могу найти решение. Я также искал в переполнении стека похожую проблему, но, к сожалению, мне не повезло. Все ответы относительно Arel-таблиц рассматривают только одну основную модель без ассоциации. Спасибо за любую помощь.

0 ответов

Другие вопросы по тегам