多文件上传carrierwave mongoid

时间:2017-01-08 17:42:05

标签: ruby-on-rails mongoid carrierwave

我一直遇到使用carrierwave-mongoid gem实现多个文件上传的问题。对于ActiveRecord而非Mongoid,已经详细记录了使用carrierwave进行多个文件上传。我试图尽可能镜像ActiveRecord教程,但似乎无法正确。我的上传器安装如下。

class Product
 include Mongoid::Document
 .....
 attr_accessor :product_images, :product_images_cache

 mount_uploaders :product_images, ProductImageUploader
end

我遇到的主要问题是保存上传器实例。在我的控制器中,在创建块中有一个pry,我可以创建一个包含上传器实例的Product实例,但是当我尝试通过rails控制台检索Uploader实例时,该数组为空。见下文。

[22] pry(#<ProductsController>)> @product
=> #<Product _id: 58726dae75e505a9ddc43f20, name: "Post", description: "This is a post\r\n", rating: nil, category_id: 1, seller_id: 1, approved: false, approved_by: nil>

[23] pry(#<ProductsController>)> @product.product_images_urls
=> ["/uploads/tmp/1483894190-43485-0005-7191/download.jpeg", "/uploads/tmp/1483894190-43485-0006-6662/TRACK.jpg"]

[24] pry(#<ProductsController>)> Product.last
=> #<Product _id: 58726dae75e505a9ddc43f20, name: "Post", description: "This is a post\r\n", rating: nil, category_id: 1, seller_id: 1, approved: false, approved_by: nil>

[25] pry(#<ProductsController>)> Product.last.product_images_urls
=> []

这里注意到图像没有保存在uploads目录中。我花了很多时间研究这个但没有线索。任何帮助将不胜感激。

更新:CarrierWave-Mongoid目前不支持此方法。我最初想到的是没有创建/保存Uploader对象https://github.com/carrierwaveuploader/carrierwave-mongoid/issues/155。我目前正在寻找一种解决方法 - 这方面的任何指针都很棒

0 个答案:

没有答案