6

有人问了这个问题,但没有给出答案……我遇到了同样的问题。

我正在使用carrierwave上传文件一切都很好,直到我想创建拇指

图像直接保存在 tmp 中,但保持相同的大小......

我的 avatar_uploader.rb 文件如下所示:

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 => [200, 200]
end

我的观点有以下几点:

<% for image in @posts %>
<%= image_tag image.avatar_url(:thumb) if image.avatar? %>
<%= image.title %>
<% end %>

当我不包含 (:thumb) 时,我会看到完整的图像......但是当我包含 (:thumb) 时,我会收到以下错误:

Version thumb doesn't exist!

下面是我的模型设置

class Post < ActiveRecord::Base
  attr_accessible :comments, :frame, :title, :twitter, :avatar
  belongs_to :user
  mount_uploader :avatar, AvatarUploader
end

我可以看到创建了一个 tmp 目录,但是图像没有调整大小...我安装了 imagemagick 和 rmagick...

谢谢

4

4 回答 4

9

I think you might want to recreate versions since you might have create thumb size for some images after you uploaded some other files.

image.avatar.url(:thumb)

above syntax is fine

To recreate versions try running

image.avatar.recreate_versions!

on all avatars you might be missing.

于 2012-05-12T07:57:13.057 回答
4

尝试以下语法之一:

image.avatar.thumb.url
# or
image.avatar.url(:thumb)
于 2012-05-11T06:35:22.450 回答
1

我建议使用

include CarrierWave::MiniMagick

代替

include CarrierWave::RMagick

因为它们可能是您没有 RMagick 的所有依赖库的情况。Thumb 版本是使用 RMagick 或 MiniMagick 创建的。问题出在你的 RMagick 上。

于 2013-05-16T10:43:59.103 回答
-1

你试过龙飞宝石吗?我知道我没有解决你的问题。但是经过几次使用后,我认为它在图像方面比载波更好。Dragonfly gem 不会创建很多图像,只是将一张图像调整为您指定的任何大小,与创建大量拇指的carrierwave 相比。

于 2012-05-11T06:01:07.657 回答