Ruby on rails 设计+;载波作物图像
我正在尝试用裁剪后的图像更新现有的用户头像。控制器还获得所有需要的参数(化身x、化身y、化身w、化身h)。我在Ruby on rails 设计+;载波作物图像,ruby-on-rails,devise,carrierwave,crop,Ruby On Rails,Devise,Carrierwave,Crop,我正在尝试用裁剪后的图像更新现有的用户头像。控制器还获得所有需要的参数(化身x、化身y、化身w、化身h)。我在design\u parameter\u sanitizer.permit(:account\u update)方法中允许了它们 Started PATCH "/users" for 127.0.0.1 at 2017-07-23 23:50:29 +0300 Processing by Devise::RegistrationsController#update as HTML Par
design\u parameter\u sanitizer.permit(:account\u update)
方法中允许了它们
Started PATCH "/users" for 127.0.0.1 at 2017-07-23 23:50:29 +0300
Processing by Devise::RegistrationsController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"n8ZQYS5iZXJs6V5eS4PfJKDeUhugasvXXIvIP+ZZIyLV4tukuqqjSvUA
+DnZFZSF468eam1vSF8hD5STYmeA8Q==", "user"=>{"email"=>"admin@example.com", "username"=>"admin", "first_name"=>"",
"last_name"=>"", "position"=>"", "city"=>"", "bio"=>"",
"avatar"=>#<ActionDispatch::Http::UploadedFile:0x007f82cb8f3860
# @tempfile=#<Tempfile:/var/folders/2h/4k0zwm8s4j1dfq5_8zf7ttmr0000gn/T/RackMultipart20170723-11835-fia4di.jpg>,
# @original_filename="gloomy-mountain-lake-hd-wallpaper.jpg", @content_type="image/jpeg",
# @headers="Content-Disposition: form-data; name=\"user[avatar]\"; filename=\"gloomy-mountain-lake-hd-wallpaper
# .jpg\"\r\nContent-Type: image/jpeg\r\n">, "avatar_crop_x"=>"1266.6666666666665", "avatar_crop_y"=>"319
# .9999999999999", "avatar_crop_w"=>"1280", "avatar_crop_h"=>"1280", "password"=>"[FILTERED]",
# "password_confirmation"=>"[FILTERED]", "current_password"=>"[FILTERED]"}, "commit"=>"Update"}
但是在我的上传程序中,所有的model.avatar\u crop.*
字段都是零
class AvatarUploader < BaseUploader
process :crop
version :thumb do
process resize_to_fill: [50, 50]
end
def crop
if model.avatar_crop_x.present?
manipulate! do |img|
w = model.avatar_crop_w.to_i
h = model.avatar_crop_h.to_i
# Set x-y coordinates of cropped image.
x = model.avatar_crop_x.to_i
y = model.avatar_crop_y.to_i
img.crop "#{w}x#{h}+#{x}+#{y}"
end
end
end
end
classavataruploader
有人有同样的问题吗?请帮帮我。谢谢在设置
头像
之前,请确保您已经设置了裁剪参数
例如:
这不会使高度在上载程序中可用:
User.new(化身:文件,高度:“10px”)
这是:
User.new(高度:“10px”,化身:文件)
检查允许参数的顺序。确保在设置
化身之前,您已设置裁剪参数
例如:
这不会使高度在上载程序中可用:
User.new(化身:文件,高度:“10px”)
这是:
User.new(高度:“10px”,化身:文件)
检查允许参数的顺序。您可以添加更多关于裁剪方法的信息以及如何将:avatar\u crop\u x、:avatar\u crop\y、:avatar\u crop\w、:avatar\u crop\u h
发送到上传程序吗?@Jeremie我使用croper.js而不是JCrop。当我提交表单params send to designe::RegistrationController#update时,表单中有四个隐藏字段。你可以看到上面的日志。我不明白为什么《阿凡达上传器》中的模型字段值为零。这个模型。avatar\u crop\u w
返回零。你能添加更多关于裁剪方法的信息,以及如何将:avatar\u crop\u x、:avatar\u crop\y、:avatar\u crop\u w、:avatar\u crop\u h
发送到上传程序吗?@Jeremie我使用croper.js而不是JCrop。当我提交表单params send to designe::RegistrationController#update时,表单中有四个隐藏字段。你可以看到上面的日志。我不明白为什么《阿凡达上传器》中的模型字段值为零。这个模型。阿凡达作物w
返回零。是的,它工作正常!谢谢请您解释一下为什么会发生这种情况?上传功能会在分配发生时调用。所以在第一种情况下,化身
的时间分配发生时,高度
没有分配给用户
对象。是的,它工作了!谢谢请您解释一下为什么会发生这种情况?上传功能会在分配发生时调用。因此,在第一种情况下,在化身
的时间分配发生时,高度
未分配给用户
对象。
class AvatarUploader < BaseUploader
process :crop
version :thumb do
process resize_to_fill: [50, 50]
end
def crop
if model.avatar_crop_x.present?
manipulate! do |img|
w = model.avatar_crop_w.to_i
h = model.avatar_crop_h.to_i
# Set x-y coordinates of cropped image.
x = model.avatar_crop_x.to_i
y = model.avatar_crop_y.to_i
img.crop "#{w}x#{h}+#{x}+#{y}"
end
end
end
end