5

これを正しく理解しているとは思いませんが、ユーザーにデフォルトの画像を与えるにはどうすればよいですか?

   def default_url
      "/images/fallback/" + [version_name, "default.png"].compact.join('_')
   end

images/fallback ディレクトリ内に「default.png」という画像があります。オンラインでも見たことがありますが、バージョン名を「小さな」などに変更している人もいますが、それも私にはうまくいかないようです。どうしたの?バージョン名は正確には何ですか?

私は何かを試しました

   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
4

2 に答える 2

12

アセット パイプラインを使用している場合は、ファイル パスに「画像」を含める必要はありません。これは、image_tagが自動的にassets/imagesフォルダーにルーティングされ、そこでファイル名が検索されるためです。したがって、メソッドで必要なパスはdefault_url、images フォルダーの後にあるものです。私の場合は、画像フォルダーにサブフォルダーがなかったため、default.png だけでした。

    def default_url
       'default.png'
    end
于 2012-06-22T15:33:26.710 に答える
5

たとえば、次のようなアップローダーがあります。

class MyUploader < CarrierWave::Uploader::Base

  version :thumb do
    process resize_to_fill: [280, 280]
  end

  version :small_thumb, :from_version => :thumb do
    process resize_to_fill: [20, 20]
  end

   def default_url
      "/images/fallback/" + [version_name, "default.png"].compact.join('_')
   end
end

/images/fallback/default.pngは元のイメージ、small_thumbバージョン パスは/images/fallback/small_thumb_default.pngなどを表します。

処理後に画像が実際に保存されるパスが必要な場合は、store_dir

  def store_dir
    'public/my/upload/directory'
  end
于 2012-04-11T05:57:20.210 に答える