首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >carrierwave拇指问题

carrierwave拇指问题
EN

Stack Overflow用户
提问于 2012-05-11 10:21:38
回答 4查看 13.8K关注 0票数 6

这个问题被问了,但没有给出答案……我也有同样的问题。

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

图像直接保存在临时文件中,但保持相同的大小...

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

代码语言:javascript
复制
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

我的观点有以下几点:

代码语言:javascript
复制
<% for image in @posts %>
<%= image_tag image.avatar_url(:thumb) if image.avatar? %>
<%= image.title %>
<% end %>

如果我不包含(:thumb),当我包含(:thumb)时,我会看到完整的images...but,我会得到以下错误:

代码语言:javascript
复制
Version thumb doesn't exist!

下面是我的模型设置

代码语言:javascript
复制
class Post < ActiveRecord::Base
  attr_accessible :comments, :frame, :title, :twitter, :avatar
  belongs_to :user
  mount_uploader :avatar, AvatarUploader
end

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

谢谢

EN

回答 4

Stack Overflow用户

发布于 2012-05-12 15:57:13

我认为你可能想要重新创建版本,因为你可能会在上传一些其他文件后为一些图像创建拇指大小。

代码语言:javascript
复制
image.avatar.url(:thumb)

上面的语法很好

要重新创建版本,请尝试运行

代码语言:javascript
复制
image.avatar.recreate_versions!

在所有的头像上,你可能都会错过。

票数 9
EN

Stack Overflow用户

发布于 2012-05-11 14:35:22

尝试以下语法之一:

代码语言:javascript
复制
image.avatar.thumb.url
# or
image.avatar.url(:thumb)
票数 4
EN

Stack Overflow用户

发布于 2013-05-16 18:43:59

我建议使用

代码语言:javascript
复制
include CarrierWave::MiniMagick

而不是

代码语言:javascript
复制
include CarrierWave::RMagick

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10544598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档