所以,我有一个购物车类,我一直保存在 session 中,直到购买完成,我需要能够在购买完成后将文件上传到购物车(不要问为什么,说来话长),我将所有这些信息转储到一个保存在数据库中的类中。
我经常使用 Carrierwave,到目前为止我没有遇到任何问题,但是当我尝试将 uploader 安装到其中时,我得到了
Cart:Class 的未定义方法 `mount_uploader'
问题是,是否可以将 uploader 挂载到不继承 ActiveRecord:Base 的类中,或者我是否遇到了另一个问题?我一直无法让它发挥作用,所以如果这是问题所在,我不想浪费更多时间。
最佳答案
如果您的模型不是 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
关于ruby-on-rails - Carrierwave:在非ActiveRecord继承类中挂载Uploader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26918038/