Ruby on rails CarrierWave:不保存图像(仅tmp)
我对CarrierWave有意见。不会保存数据库中的图像和路径,但会保存tmp文件 这是我的阿凡达阅读器(apps/uploaders/avatar_uploader.rb): 编码:utf-8 类AvatarUploaderRuby on rails CarrierWave:不保存图像(仅tmp),ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,carrierwave,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Carrierwave,我对CarrierWave有意见。不会保存数据库中的图像和路径,但会保存tmp文件 这是我的阿凡达阅读器(apps/uploaders/avatar_uploader.rb): 编码:utf-8 类AvatarUploader[200300] # #def刻度(宽度、高度) #做点什么 #结束 #创建上载文件的不同版本: #版本:thumb do #过程:比例=>[50,50] #结束 #添加允许上载的扩展的白名单。 #对于图像,您可以使用以下内容: def扩展白名单 %w(jpg jpeg g
类成员
有什么想法吗?我用
为会员型号设置了\u安全\u密码。在编辑表单中,我忘记添加密码和密码确认来验证用户
愚蠢的错误。One CW的ActiveRecord支持已经安装,并且您已经添加了avatar
string列,您仍然需要使用文件的缓存版本保存您的成员。请参阅的ActiveRecord部分。只是一个猜测,因为我在你发布的代码中没有看到你这样做的地方。我不知道如何修复它:(试着浏览与我上面提供的GitHub链接相关联的自述文件中显示的步骤(向下滚动)。需要很多小的设置步骤。我强烈建议CarrierWave阅读代码以了解它在做什么;这是一个功能强大的gem,可以做很多工作。如果您需要更多帮助,请编辑您的帖子以包含最终保存成员
记录的控制器代码;这是ca文件的ched版本被写入存储,数据库被更新为名称,其他大部分魔法都发生了。感谢帮助,但我刚刚创建了新项目,复制了控制器、模型、视图,一切正常!谢谢!
# encoding: utf-8
class AvatarUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
include CarrierWave::MiniMagick
# Choose what kind of storage to use for this uploader:
storage :file
# storage :fog
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
# Provide a default URL as a default if there hasn't been a file uploaded:
# def default_url
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
# end
# Process files as they are uploaded:
# process :scale => [200, 300]
#
# def scale(width, height)
# # do something
# end
# Create different versions of your uploaded files:
# version :thumb do
# process :scale => [50, 50]
# end
# Add a white list of extensions which are allowed to be uploaded.
# For images you might use something like this:
def extension_white_list
%w(jpg jpeg gif png)
end
# Override the filename of the uploaded files:
# Avoid using model.id or version_name here, see uploader/store.rb for details.
# def filename
# "something.jpg" if original_filename
# end
end
class Member < ActiveRecord::Base
attr_accessible :name, :email, :password, :password_confirmation, :avatar
mount_uploader :avatar, AvatarUploader
email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :name, presence: true,
uniqueness: true,
length: { within: 4..32 }
validates :email, presence: true,
uniqueness: true,
format: { with: email_regex }
validates :password, presence: true,
length: { minimum: 6 }
has_secure_password
before_create :generate_token
private
def generate_token
begin
self.auth_token = SecureRandom.hex(16)
end while Member.exists?(auth_token: self.auth_token)
end
end