1

オブジェクトに常に少なくとも 1 つの画像が添付されていることを確認しようとしています。したがって、人がオブジェクトに属するすべての画像を削除すると、デフォルトの画像に戻ります。

Railsでこれを行う最善の方法は何ですか?

4

2 に答える 2

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"
于 2013-02-05T00:57:14.077 に答える
0

レコードに画像のリストがあるかどうかを確認できます。あなたの関連性を知らなくても、あなたがImageに属するというモデルを持っているとしか思えませんSomeOtherModel。ビューでは、これらの画像の存在を確認し、存在しない場合は別の画像をレンダリングできます。

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

エレガントな解決策の 1 つは、画像を含む div の背景画像 (繰り返しなしに設定) として placeholder.png を使用することです。div の高さが設定されていることと、最初の画像が常に背景画像と重なっていることを確認してください。

于 2013-02-05T01:39:56.203 に答える