私はこれを正しく理解しているとは思わないが、ユーザーにデフォルトのイメージを与えるにはどうすればよいですか?rails carrierwave default_url not working
def default_url
"/images/fallback/" + [version_name, "default.png"].compact.join('_')
end
私のimages/fallbackディレクトリには、「default.png」というイメージがあります。オンラインで見ても、人々はversion_nameを 'tiny'のようなものに変更しますが、それは私にとってもうまくいかないようです。どうしたの?バージョン名は正確に何ですか?
私は
def default_url
"/images/fallback/default.png"
end
のようなものを試してみましたが、それはどちらか動作しません。私は何を誤解していますか?感謝! ありがとう!
編集:例えば
class ImageUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
include CarrierWave::RMagick
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
# Provide a default URL as a default if there hasn't been a file uploaded:
def default_url
???????
end
# Create different versions of your uploaded files:
version :thumb do
process :resize_to_fill => [80, 80]
end
end
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :name, :email, :password, :password_confirmation,
:remember_me, :image, :remote_image_url, :image_cache
mount_uploader :image, ImageUploader
end
どれを正確に参照するのですか?私はまだちょっと混乱しています。私はdefault_urlが、親指からどこでもデフォルトのイメージを参照する場所だと思っていました。私は最初に他の場所に既定のイメージを配置するはずですか? 私は通常、私のバージョン:thumbから画像を使用していますが、thumb_pathを試しましたが、正しいとは思われません。 – Sasha
@Crystalのデフォルト画像は、要求された画像を見つけることができませんでした。たとえば、small_thumbを削除すると、carrierwaveがsmall_thumb_default.pngを表示します。すべての画像が常に適切に配置されていることが確実な場合は、デフォルト画像を使用しないでください。 –
hmmm、まだそれほど動作していません。私はサインアップ登録フォームを持っており、ユーザーがサインアップするときに、少なくともユーザーがそれを変更するまで、デフォルトのイメージを表示したいと思っています。私はサインアップした後、私のデータベースをチェックし、私の「イメージ」の列はまだヌルです。もし私が手動で自分のプロフィール画像を画像に変更すると、その「画像」列はデータを取得します。ユーザーが最初にサインアップすると、基本的に 'image.'列の 'default.png'データを持つ方法がありますか? – Sasha