carrierwave拇指问题

use*_*798 6 ruby-on-rails rmagick imagemagick carrierwave

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

我正在使用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
Run Code Online (Sandbox Code Playgroud)

我的观点如下:

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

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

Version thumb doesn't exist!
Run Code Online (Sandbox Code Playgroud)

下面是我的模型设置

class Post < ActiveRecord::Base
  attr_accessible :comments, :frame, :title, :twitter, :avatar
  belongs_to :user
  mount_uploader :avatar, AvatarUploader
end
Run Code Online (Sandbox Code Playgroud)

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

谢谢

m4r*_*isU 9

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

image.avatar.url(:thumb)
Run Code Online (Sandbox Code Playgroud)

上面的语法很好

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

image.avatar.recreate_versions!
Run Code Online (Sandbox Code Playgroud)

在你可能会失踪的所有头像上.


Ben*_*min -1

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