2011-04-18 47 views
4

我试图实现对我工作的一个Web应用程序手动裁剪和我有这个至今:从Carrierwave上传里面访问模型

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中

回答

0

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

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

却忘了他们包括在attr_accessible作物变量。通过这样做

attr_accessible:描述:形象:crop_x,:crop_y,:crop_w,:crop_h

我能得到的模型作物变量。我不知道这是否会解决你的问题,因为你描述的模型返回零而不是作物方法。

+1

我也遇到过这个问题,因为我非常害怕保持attr_accessible的直线,但是可惜的是,它的模型是零。 – Kelend 2011-05-17 05:14:36

0

当我尝试访问模型数据时,CarrierWave中的对象为零,我非常挣扎。

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

+0

您的carrierwave上传器中哪里可以成功访问模型?我似乎只能在路径方法中访问它,而不是任何自定义的(如我自己的处理器) – Kelend 2011-06-25 03:29:52

+0

不幸的是,它是在路径方法中,我修复了我自己的问题,没有其他地方。 – Kombo 2011-06-27 22:27:23

+0

但问题是:你做了什么来解决这个问题。请显示一些代码。 – geekdeepak 2013-04-11 09:54:27