Объединение двух ассоциаций ActiveRecord с одинаковым отношением в модели в Rails - PullRequest
0 голосов
/ 18 сентября 2018

В настоящее время у меня есть модель Transaction, которая имеет много Documents через две разные has_many => through ассоциации.Многочисленные ассоциации обусловлены двумя различными способами, которыми можно генерировать Document в нашем приложении:

  • CustomerApplication, который имеет has_many :documents ассоциацию
  • CustomerScenario с has_many :documents ассоциацией

Мы добавили набор ассоциаций в нашу Transaction модель для доступа к ассоциации CustomerApplications и CustomerScenarios, а также через ассоциации для доступа к их соответствующим Documents.

has_many :customer_applications, dependent: :restrict_with_error
has_many :customer_application_documents, through: : customer_applications, source: :documents
has_many :customer_scenarios, dependent: :restrict_with_error
has_many :customer_scenario_documents, through: : customer_scenarios, source: :documents

С помощью этих ассоциаций мы можем легко получить два разных Document::ActiveRecord_AssociationRelation для каждой из сквозных ассоциаций.Однако я хочу одним простым способом вернуть комбинированный Document::ActiveRecord_AssociationRelation, который охватывает обе ассоциации.Например, что-то, что эффективно приводит к:

customer_application_documents + customer_scenario_documents

, но результат по-прежнему Document::ActiveRecord_AssociationRelation, а не простой Array.

Я пытался играть с Арелем, а также с некоторым сложным SQL.or ActiveRecord не нравится :joins в запросе or, поэтому он тоже не рад.

Есть идеи здесь?Заранее спасибо!

...