Как написать запрос, который возвращает столбцы из объединяемых таблиц (связанных с использованием настраиваемого класса), который возвращает отношение ActiveRecord - PullRequest
0 голосов
/ 26 мая 2020
class Event < ApplicationRecord
    belongs_to :event_type, :class_name => 'Keyword', :foreign_key => :event_type_id, optional: false
    belongs_to :promotion_type, :class_name => 'Keyword', :foreign_key => :promotion_type_id, optional: false    
end

class Keyword < ApplicationRecord
    has_many :events
end

Я пытаюсь написать запрос, который возвращает столбцы из объединенной таблицы, однако мне кажется, что я могу создать рабочий запрос, только если я использую Pluck, который я не использую sh как это гарантирует, что запрос вернет массив. Мне нужен запрос для возврата отношения ActiveRecord.

Вот запрос, работающий с использованием Pluck. (Возвращает массив)

Event.joins(:event_type).pluck('event.id, event.name, keywords.name')

Когда я пытаюсь использовать Select, столбец объединенной таблицы не отображается в результатах. (Возвращает ActiveRecord Relation, что мне и нужно)

Event.joins(:event_type).select('event.id, event.name, keywords.name')

Мне явно не хватает чего-то простого, но я застрял. Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 31 мая 2020

Я закончил настройку своих моделей, чтобы удалить пользовательский класс. Как только я это сделал, запрос работал так, как я всегда ожидал.

Event.joins(:event_type).select('event.id, event.name, keywords.name')

Дело закрыто.

...