Rails: Как загружать вложения, принадлежащие связанной модели? - PullRequest
0 голосов
/ 06 марта 2020

В моем приложении Rails v5.2.4.1 (ruby v2.6.1) я загружаю кучу сообщений, используя рабочий запрос. Каждое сообщение belongs_to a :user модель, а пользователь has_one_attached :photo. Я с нетерпением жду загрузки пользователей со всеми подобными сообщениями:

Message.<query>.includes(:user)

Сейчас этот код photo.attached? ? photo : 'default_avatar.png' приводит к таким запросам:

SELECT  "active_storage_attachments".* FROM "active_storage_attachments" WHERE "active_storage_attachments"."record_id" = $1 AND "active_storage_attachments"."record_type" = $2 AND "active_storage_attachments"."name" = $3 LIMIT $4  [["record_id", 32], ["record_type", "User"], ["name", "photo"], ["LIMIT", 1]]

Как мне готовы загрузить user.photo и user.photo.attached? с моим запросом?

1 Ответ

0 голосов
/ 07 марта 2020

После некоторых исследований я нашел ответ на этот вопрос. Я пропустил это в документах . Проблема решается с помощью <association>_attachment во включениях. Так что в моем вопросе энергичная загрузка (для photo) выполняется с использованием следующего кода

Message.<query>.includes(user: :photo_attachment)
...