Carrierwave:非ActiveRecord继承类中的Mount Uploader

时间:2014-11-13 20:43:01

标签: ruby-on-rails rails-activerecord carrierwave

所以,我有一个购物车课程,我一直保存在会议中,直到购买完成,我需要能够将文件上传到购物车(不要问为什么,长话题)一旦购买完成后,我将所有信息转储到保存在数据库中的类中。

我已经使用了很多Carrierwave,到目前为止我没有遇到任何问题,但当我尝试将上传器加载到其中时,我得到了

undefined method `mount_uploader' for Cart:Class

问题是,是否可以将一个上传器安装到一个不会继承ActiveRecord的类中:Base或者我是否还有另一个问题?我还没有能够让它发挥作用,所以我不想浪费更多时间,如果这是问题。

1 个答案:

答案 0 :(得分:4)

如果您的模型不是ActiveRecord :: Base的子类,您将获得该异常:

undefined method `mount_uploader' for Derp:Class

令人高兴的是,如果你的类扩展了CarrierWave :: Mount模块并且该类有一个调用实例方法store_(mounted_field)的save方法,你可以使用mount_uploader!

总之,ActiveRecord :: Base-less类看起来像

class Derp
    extend CarrierWave::Mount
    attr_accessor :name, :image
    mount_uploader :image, ImageUploader

    def save
        self.store_image!
    end
end