Область Rails ActiveStorage для когда файл прикреплен - PullRequest
0 голосов
/ 08 ноября 2018

При использовании ActiveStorage, как создать область для прикрепления файлов.

Например:

class Check < ActiveRecord::Base
  has_one_attached :image
end

Я хочу, чтобы что-то вроде Check.has_attached_image возвращало только записи, в которых есть существующее прикрепленное изображение.

Я знаю, что ActiveStorage предоставляет область действия with_attached_image. Но это не похоже на работу:

irb(main):009:0> Check.with_attached_image.to_sql => "SELECT \"checks\".* FROM \"checks\""

1 Ответ

0 голосов
/ 08 ноября 2018

Основная цель области действия with_attached_image состоит в том, чтобы избежать N + 1 запросов (для включения вложенных больших двоичных объектов в ваш запрос).

Чтобы возвращать только записи, в которых есть существующее прикрепленное изображение, вы можете создать область в модели Check следующим образом:

scope :has_attached_image, -> { joins(image_attachment: :blob) }

...