attr_accessor 阻止保存模型字段

attr_accessor prevent model fields to be saved

我正在尝试调整代码以与某些用户一起裁剪图像 javascript

遵循 Railscast 184 以及其他教程,但无法正常工作。 (这是一件好事,因为它迫使我更好地理解 Ruby)

虽然我的问题:

我正在尝试将裁剪数据保存到我的数据库中,但发生了一件奇怪的事情:以下位 attr_accessor :x, :y, :width, :height 阻止控制器保存这些值。

控制器更新操作

if params[:profilepicupload] then
      newpic = @professionnel.build_profilepic
      newpic.image = params[:profilepicupload]
      newpic.save
    else
      ppic = @professionnel.profilepic
      ppic.x = params[:dataX]
      ppic.y = params[:dataY]
      ppic.height = params[:dataHeight]
      ppic.width = params[:dataWidth]
      ppic.save

    end

Profilepic.rb 型号

class Profilepic < ApplicationRecord

  belongs_to :professionnels

  has_attached_file :image, styles: { big: "1200x1200", medium: "400x400", small: "250x250"}, whiny: false, use_timestamp: false, processors: [:cropper]
  validates_attachment :image, content_type: { content_type: ["image/jpeg", "image/gif", "image/png"] }, size: {less_than: 15.megabytes}
  attr_accessor :x, :y, :width, :height

end

当我删除对模型文件的 attr_accessor 引用时,x、y、宽度和高度值将保存到模型中!

(两种情况都没有裁剪)

通过设置您自己的 attr_accessor 方法,您可以覆盖 Rails 逻辑以从数据库中获取这些值。我猜您希望将这些值保存在数据库中。如果是这样,只需通过迁移将它们作为属性添加到您的模型中,您就应该准备就绪。