【问题标题】:Carrierwave: Mount Uploader in non ActiveRecord inherited classCarrierwave:在非 ActiveRecord 继承类中挂载 Uploader
【发布时间】:2014-11-13 20:43:00
【问题描述】:

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

我经常使用 Carrierwave,到目前为止我没有遇到任何问题,但是当我尝试在其中安装上传器时,我遇到了

undefined method `mount_uploader' for Cart:Class

问题是,是否可以将上传器安装到不继承 ActiveRecord:Base 的类中,还是我完全有另一个问题?我无法让它工作,所以如果这是问题,我不想浪费更多时间。

【问题讨论】:

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


【解决方案1】:

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

undefined method `mount_uploader' for Derp:Class

很高兴,如果您的类扩展了 CarrierWave::Mount 模块并且该类有一个调用实例方法 store_(mounted_field) 的保存方法,那么您可以使用 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

【讨论】:

  • 在我这样做之后,我在我的视图中得到了这个错误'未定义的方法 `model_name' for LogoUploader:Class'。
猜你喜欢
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
  • 1970-01-01
  • 2015-04-18
  • 2014-02-03
  • 1970-01-01
  • 2017-12-16
相关资源
最近更新 更多