红宝石。设置CarrierWave的默认图片

时间:2016-12-01 23:34:07

标签: ruby-on-rails ruby carrierwave

我想在我的帖子中添加默认图片。

我在我的app/assets/images/default/no-photo-wide.png照片中。

我的上传者:

class PictureUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick

  process resize_to_limit: [600, 300]

  storage :file

  def default_url
    ActionController::Base.helpers.asset_path("default/no-photo-wide.png")
  end

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  def extension_white_list
    %w(jpg jpeg gif png)
  end
end

但是我的测试:

it 'will add default picture if no picture is uploaded' do
      new_post = Post.new(content: 'some content', theme: 'some theme', user_id: User.first.id)
      new_post.save(validate: false)

      expect(Post.first.picture).to eq ".../no-photo-wide.png"
end

但是作为回报,测试失败了,当我查看测试给出的结果时,它告诉我图片字段为空picture: nil

我试过:

def default_url(*args)
    "default/no-photo-wide.png"
end

但它仍然不起作用,你能告诉我导致这个问题的原因吗?

0 个答案:

没有答案