Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 设计+;载波作物图像_Ruby On Rails_Devise_Carrierwave_Crop - Fatal编程技术网

Ruby on rails 设计+;载波作物图像

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

我正在尝试用裁剪后的图像更新现有的用户头像。控制器还获得所有需要的参数(化身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
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