无法使用载波生成图像的缩略图
can't generate a thumbnail of an image using carrierwave
我的计划是只为图像创建一个模型,然后使用该模型创建个人资料图片、图库等。
所以,我已经为图像创建了一个单独的模型,并且我能够存储图像以显示这些图像。但是,它们太大了,所以我想创建一个缩略图版本。
我的配置是
class Image < ActiveRecord::Base
mount_uploader :avatar, AvatarUploader
end
控制器:
class ImagesController < ApplicationController
def new
@image_upload=Image.new
end
def create
@image_upload=Image.create(uploading_image)
if @image_upload.save
redirect_to '/users'
end
end
def uploading_image
params.require(:image).permit(:avatar)
end
end
上传者:
class AvatarUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}...(default store only)"
end
version :thumb do
process :resize_to_limit => [50, 50]
end
用户控制器:
def index
@user_profile=Profile.find(1)
@imagefile=Image.first
end
users/index.html.erb:
<%= image_tag @imagefile.avatar.to_s %> #This gives me the whole image.
<%= image_tag @imagefile.image_url(:thumb).to_s %> #says undefined method `image_url' for #<Image:0x007f6cd0538010>
ps: 我可以在文件夹中看到缩略图版本
如果有人能帮助我,那就太好了。
您可以像调用原始副本一样调用@imagefile 的其他版本,只需添加版本名称即可。你可以使用 url 助手。所以:
<%= image_tag @imagefile.avatar.url %>
<%= image_tag @imagefile.avatar.thumb.url %>
<%= image_tag @imagefile.image_url(:thumb) %>
应该是 <%= image_tag @imagefile.avatar_url(:thumb) %>
因为安装了上传器的字段叫做 'avatar'。此外,您不需要在 url.
上调用 .to_s
我的计划是只为图像创建一个模型,然后使用该模型创建个人资料图片、图库等。
所以,我已经为图像创建了一个单独的模型,并且我能够存储图像以显示这些图像。但是,它们太大了,所以我想创建一个缩略图版本。 我的配置是
class Image < ActiveRecord::Base
mount_uploader :avatar, AvatarUploader
end
控制器:
class ImagesController < ApplicationController
def new
@image_upload=Image.new
end
def create
@image_upload=Image.create(uploading_image)
if @image_upload.save
redirect_to '/users'
end
end
def uploading_image
params.require(:image).permit(:avatar)
end
end
上传者:
class AvatarUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}...(default store only)"
end
version :thumb do
process :resize_to_limit => [50, 50]
end
用户控制器:
def index
@user_profile=Profile.find(1)
@imagefile=Image.first
end
users/index.html.erb:
<%= image_tag @imagefile.avatar.to_s %> #This gives me the whole image.
<%= image_tag @imagefile.image_url(:thumb).to_s %> #says undefined method `image_url' for #<Image:0x007f6cd0538010>
ps: 我可以在文件夹中看到缩略图版本
如果有人能帮助我,那就太好了。
您可以像调用原始副本一样调用@imagefile 的其他版本,只需添加版本名称即可。你可以使用 url 助手。所以:
<%= image_tag @imagefile.avatar.url %>
<%= image_tag @imagefile.avatar.thumb.url %>
<%= image_tag @imagefile.image_url(:thumb) %>
应该是 <%= image_tag @imagefile.avatar_url(:thumb) %>
因为安装了上传器的字段叫做 'avatar'。此外,您不需要在 url.
.to_s