我试图确保对象始终至少附有 1 张图像。因此,如果一个人删除了属于某个对象的所有图像,那么它将恢复为默认图像。
在 Rails 中解决这个问题的最佳方法是什么?
我试图确保对象始终至少附有 1 张图像。因此,如果一个人删除了属于某个对象的所有图像,那么它将恢复为默认图像。
在 Rails 中解决这个问题的最佳方法是什么?
如果您使用的是回形针,则可以选择为您的图像指定default_url :
default_url:未分配附件时返回的 URL。该字段与 url 一样被插值。默认值为“/:attachment/:style/missing.png”
has_attached_file :avatar, :default_url => "/images/default_:style_avatar.png"
User.new.avatar_url(:small) # => "/images/default_small_avatar.png"
您可以检查记录是否有图像列表。在不知道您的关联的情况下,我只能假设您有一个名为Image
which 属于的模型SomeOtherModel
。在视图中,您可以只检查这些图像是否存在,如果不存在则渲染不同的图像。
if some_other_model.images.any?
# render images here
else
= image_tag 'placeholder.png'
一种优雅的解决方案可能是使用 placeholder.png 作为包含图像的 div 的背景图像(设置为无重复)。只需确保 div 具有设定的高度并且第一张图像始终与背景图像重叠。