这个问题被问到了,但没有给出答案......我遇到了同样的问题。
我正在使用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 %>
当我不包括(:拇指)时,我看到完整的图像...但是当我包含(:拇指)时,我收到以下错误:
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 ......
谢谢
答案 0 :(得分:8)
我认为您可能想要重新创建版本,因为您在上传其他文件后可能会为某些图像创建拇指大小。
image.avatar.url(:thumb)
上面的语法很好
要重新创建版本,请尝试运行
image.avatar.recreate_versions!
您可能缺少的所有头像。
答案 1 :(得分:4)
尝试以下语法之一:
image.avatar.thumb.url
# or
image.avatar.url(:thumb)
答案 2 :(得分:1)
我建议使用
include CarrierWave::MiniMagick
而不是
include CarrierWave::RMagick
因为他们可能是你没有RMagick的所有依赖库的情况。 Thumb版本是使用RMagick或MiniMagick创建的。问题出在你的RMagick上。
答案 3 :(得分:-1)