【发布时间】:2014-03-31 17:55:49
【问题描述】:
我有一个文件字段供想要上传个人资料图片的人使用:
<%= f.file_field :file %>
一切正常,但是,我不知道如何验证它。
这是我的创建操作,一切正常,但是像我这样拆分参数哈希可能是错误的:
def create
new_user_params = user_params
image_params = user_params[:profile_image_attributes]
new_user_params.delete("profile_image_attributes")
@user = User.new(new_user_params)
respond_to do |format|
if @user.save
@user.create_thumbnail(image_params)
sign_in @user
format.html { redirect_to @user, notice: 'Welcome to ' + request.host_with_port + ', ' + @user.user_name + '!' }
format.json { render action: 'show', status: :created, location: @user }
else
format.html { render action: 'new' }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
这是user#create_thumbnail 方法:
def create_thumbnail(data)
upload = data['file'].read
img = Magick::Image.from_blob(upload).first
img.resize!(75,75)
transaction do
self.create_profile_image(path: 'test')
img.write 'test' + '.' + img.format.downcase
end
end
问题:
就像它说的那样,这一切都很完美,但我想知道如何正确地做到这一点,最重要的是,如何阻止人们上传巨大的文件和文件没有带有适当验证错误消息的 .gif、.png .jpg 或 .jpeg 格式...
【问题讨论】:
标签: ruby-on-rails model image-uploading