ruby-on-rails - Rails 6 + Active Storage:设置可以有变体的默认图像
问题描述
我需要为活动存储附件设置默认图像,以防没有上传图像。
我可以制作一个简单的助手来调用图像,/assets/images
但在这种情况下,这些图像不适用于变体(例如<%= image_tag image.variant(resize_to_fill: [50,50]) %>
)
浏览网页,我发现这篇有趣的文章提供了一些线索:https ://gorails.com/forum/how-do-i-set-and-use-a-default-image-with-active-storage ,但它对我来说还不够。
用before_create
回调附加图像对我来说听起来有点过头了,因为它将多次将相同的图像上传到存储中。
- 有没有办法设置一个默认图片,它的行为就像任何 Active Storage 附件一样,并接受变体?
- 有没有办法让 minimagick 变体使用资产路径中的“正常”图像?
解决方案
创建一个获取图像的方法。请遵循以下代码段:
def fetch_cover_image
if self.cover_image.attached?
Rails.application.routes.url_helpers.rails_blob_url(self.cover_image,
host: Rails.application.credentials[Rails.env.to_sym][:host])
else
ActionController::Base.helpers.image_url('cover_image.jpg')
end
end
推荐阅读
- ios - How to fetch CoreData result for only selected row in swift 5?
- python - How to compute aggregations on a range of thresholds?
- openstack - Openstack Swift 安装:admin-openrc
- mysql - Mysql选择查询如果条件参数为空则忽略该参数
- c# - How can I set the position variable only in it's parent rather than on every inherited class?
- android - 是否可以使用opengl在android中压缩视频?
- python - How to show the payment which is assigned to user in html page of django?
- c# - Is it possible to make a var class?
- sql - 在 JOIN(SQL 服务器)之后,有没有更好的方法来针对结果表编写 UPDATE 查询?
- yocto - Is there a way to install keys into the opkg-keyring during the yocto build process and have them marks as ultimate rather than unknown by gpg