2

我在这个问题上搜索了很多,但似乎无法让它工作(stackoverflow,Carrierwave Railscasts)。

首先,我上传图片的问题为零。那工作正常。现在图像很大,我想把它变小。目前我的 avatar_uploader.rb 文件是:

require 'carrierwave/orm/activerecord'
class AvatarUploader < CarrierWave::Uploader::Base
  include CarrierWave::RMagick

  storage :file

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

  version :thumb do
    process :resize_to_limit => [50,50]
  end

  def extension_white_list
    %w(jpg jpeg gif png)
  end

end

在观看 railscasts 之后(即使它来自 2011 年),似乎您必须将 :thumb 传递给您的视图,例如:

<%= image_tag(user.avatar(:thumb).to_s) %>

这在浏览器中给了我一个错误:

参数数量错误(1 代表 0)

我什至不确定是否有必要将 :thumb 传递到您的视图中。是吗?

我知道这是一个相当简单的修复,所以任何帮助将不胜感激!

4

1 回答 1

2

从那时起,语法似乎发生了变化。如有疑问,请查阅官方文档

uploader.url # => '/url/to/my_file.png'               # size: 800x800
uploader.thumb.url # => '/url/to/thumb_my_file.png'   # size: 200x200

或者,就您而言,可能是:

user.avatar.thumb.url
于 2012-12-07T07:27:40.990 回答