我正在尝试确保对象始终至少附加了1张图像。因此,如果一个人删除了属于某个对象的所有图像,那么它将恢复为默认图像。
在Rails中最好的方法是什么?
答案 0 :(得分:1)
如果您使用的是paperclip,则可以选择为您的图片指定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"
答案 1 :(得分:0)
您可以检查记录是否包含图像列表。在不知道您的关联的情况下,我只能假设您有一个名为Image
的模型属于SomeOtherModel
。
在视图中,您可以检查这些图像是否存在,如果没有,则渲染不同的图像。
if some_other_model.images.any?
# render images here
else
= image_tag 'placeholder.png'
一个优雅的解决方案可能是使用placeholder.png作为包含图像的div的背景图像(设置为无重复)。只需确保div具有设定的高度,并且第一个图像始终与背景图像重叠。