1

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

在 Rails 中解决这个问题的最佳方法是什么?

4

2 回答 2

1

如果您使用的是回形针,则可以选择为您的图像指定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"
于 2013-02-05T00:57:14.077 回答
0

您可以检查记录是否有图像列表。在不知道您的关联的情况下,我只能假设您有一个名为Imagewhich 属于的模型SomeOtherModel。在视图中,您可以只检查这些图像是否存在,如果不存在则渲染不同的图像。

if some_other_model.images.any?
  # render images here
else
  = image_tag 'placeholder.png'

一种优雅的解决方案可能是使用 placeholder.png 作为包含图像的 div 的背景图像(设置为无重复)。只需确保 div 具有设定的高度并且第一张图像始终与背景图像重叠。

于 2013-02-05T01:39:56.203 回答