在最后一条记录被销毁时,添加占位符

时间:2013-02-05 00:51:04

标签: ruby-on-rails ruby-on-rails-3.2

我正在尝试确保对象始终至少附加了1张图像。因此,如果一个人删除了属于某个对象的所有图像,那么它将恢复为默认图像。

在Rails中最好的方法是什么?

2 个答案:

答案 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具有设定的高度,并且第一个图像始终与背景图像重叠。