我一直遇到使用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。我目前正在寻找一种解决方法 - 这方面的任何指针都很棒