我的计划是我想为图像创建一个模型,并使用该模型创建个人资料图片,图库等。
所以,我为图像创建了一个单独的模型,我能够存储图像以显示这些图像。但是,它们太大了,所以我想创建一个缩略图版本。 我的配置是
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
用户/ 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:我可以在文件夹
中看到缩略图版本如果有人可以帮助我,那就太棒了。
答案 0 :(得分:0)
您调用其他版本的@imagefile的方式与调用其原始副本的方式相同,只需添加版本名称即可。你可以使用网址助手。这样:
<%= image_tag @imagefile.avatar.url %>
<%= image_tag @imagefile.avatar.thumb.url %>
答案 1 :(得分:0)
<%= image_tag @imagefile.image_url(:thumb) %>
应为<%= image_tag @imagefile.avatar_url(:thumb) %>
,因为已安装上传器的字段称为“头像”。此外,您不需要在网址上拨打.to_s
。