您如何预加载所有记录及其URL?
这是我在jbuilder中为获取URL而做的事情:
# views/users/index.json.jbuilder
...
json.avatar_url user.avatar.attached? && rails_blob_url(user.avatar)
...
Comment
has_one :user
User
has_one_attached :avatar
您将如何预加载所有用户及其头像?
Comments.includes(users: :avatar)
产生以下错误:
ActiveRecord :: AssociationNotFoundError(在用户上找不到名为“ avatar”的关联;也许您拼错了?)
执行时弹出相同的错误:
User.includes(:avatar)
答案 0 :(得分:8)
对于名为:avatar
的单个附件,Active Storage添加一个with_attached_avatar
范围,该范围预加载了相关的关联:
@users.with_attached_avatar.each do |user|
# ...
end
请参阅has_one_attached
的API文档。