从Carrierwave上传器中访问模型

时间:2011-04-18 21:03:06

标签: ruby-on-rails ruby crop rmagick carrierwave

我正在尝试为我正在处理的Web应用程序实现手动裁剪,到目前为止我有这个:

  version :croppedversion do
    process :manualcrop => [model.crop_x, model.crop_y, model.crop_h, model.crop_w]
  end

  process :resize_to_limit => [600, 600]

  def manualcrop(x,y,h,w)
    manipulate! do |img|
      img = img.crop(x,y,h,w)
    end
  end

问题在于模型正在变为零。从我读过的文档中,这将是正确的方法。

有什么建议吗?我现在已经将调用的调用转移到了模型中的回调中,但是真的希望它能够驻留在carrierwave中

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。我有

  

attr_accessor:crop_x,:crop_y,:crop_w,:crop_h

但忘了在attr_accessible中包含裁剪变量。通过做

  

attr_accessible:description,:image,:crop_x,:crop_y,:crop_w,:crop_h

我能够获得模型裁剪变量。我不知道这是否会解决您的问题,因为您描述的模型返回的是nil而不是裁剪方法。

答案 1 :(得分:0)

在尝试访问模型数据时,我在CarrierWave中的对象是nil非常困难。

对我来说,问题出在我的控制器上。这看起来并不像它适用于你的情况,但我正在通过执行以下操作来运行查询:model.user.foo - 如果我在创建对象后立即将此用户分配给模型,则会出现nil。 / p>