Rya*_*yan 8 ruby ruby-on-rails ruby-on-rails-5 rails-activestorage
使用 ActiveStorage 时,如何为附加文件创建范围。
例如:
class Check < ActiveRecord::Base
has_one_attached :image
end
Run Code Online (Sandbox Code Playgroud)
我想要Check.has_attached_image只返回存在附加图像的记录。
我知道这ActiveStorage提供了一个with_attached_image范围。但这似乎不起作用:
irb(main):009:0> Check.with_attached_image.to_sql
=> "SELECT \"checks\".* FROM \"checks\""
Zor*_*vic 10
范围的主要目的with_attached_image是避免 N+1 查询(在查询中包含附加的 blob)。
要仅返回存在附加图像的记录,您可以在Check模型中创建一个范围,如下所示:
scope :has_attached_image, -> { joins(image_attachment: :blob) }
从评论更新:
scope :has_attached_image, -> { joins(:image_attachment) }
| 归档时间: |
|
| 查看次数: |
2040 次 |
| 最近记录: |