default_url не работает с CarrierWave (Rails4)

Я хотел бы отобразить изображение по умолчанию, если пользователь не загружает изображение. Вот мой picture_uploader.rb, и я загрузил default.png в /images/fallback. Но я не могу заставить его работать. Любые советы, что я могу попробовать дальше?

class PictureUploader < CarrierWave::Uploader::Base

  include CarrierWave::MiniMagick
  version :thumb do
    process :resize_to_fill => [150, 150]
  end

  # Provide a default URL as a default if there hasn't been a file uploaded:
  def default_url
    "/images/fallback/" + [version_name, "default.png"].compact.join('_')
  end
end

person userden    schedule 07.03.2014    source источник


Ответы (1)


Согласно вашему default_url имя вашего изображения должно быть thumb_default.png:

[2] pry(main)> version_name = 'thumb'
=> "thumb"
[3] pry(main)> [version_name, "default.png"].compact.join('_')
=> "thumb_default.png"
person cortex    schedule 07.03.2014
comment
Спасибо! Я изменил имя на thumb_default.png, но это не сработало. Я также пробовал с конвейером ресурсов: ActionController::Base.helpers.asset_path(fallback/ + [version_name, default.png].compact.join('_')) и помещал файл в =›/assets/fallback/thumb_default. png Но и это не сработало. Я не понимаю, откуда Rails берет имя версии? - person userden; 07.03.2014
comment
Просмотрите журнал своих серверов или используйте веб-инспектор, чтобы определить имя (и путь) изображения, которое он пытается найти. - person cortex; 08.03.2014