我可以使用carrierwave一次上传多个文件,如下所述: https://github.com/carrierwaveuploader/carrierwave#multiple-file-uploads
所以我有
class Item < ActiveRecord::Base
mount_uploaders :images, ImagesUploader
serialize :images, JSON
...
end
现在我要上传远程文件(而不是本地驱动器)。通常我会在我的控制器中使用这样的东西
class ItemsController < ApplicationController
...
item.remote_images_url = params[:image_url]
...
end
但帮手 remote_images_url (介意复数版 remote_ 图片 _url )只给我
未定义的方法remote_images_url
我还尝试了 remote_image_url ,这是单个文件上传时的默认助手。也是未定义的方法。
使用&#34;上传多个文件时如何上传远程文件&#34;与carrierwave?
答案 0 :(得分:1)
最后我查看了carrierwave的github存储库,我发现了这个:
https://github.com/carrierwaveuploader/carrierwave/blob/master/lib/carrierwave/mount.rb
幸运的是,这个文件的评论中都描述了这一切。我只能改变一件小事。在评论中,它说对于名为 images 的列,我必须使用辅助方法 remote_image_urls 。但实际上我必须使用 remote_images_urls (总是复数)。
这就是我案例中的解决方案:
class Item < ActiveRecord::Base
mount_uploaders :images, ImagesUploader
serialize :images, JSON
...
end
class ItemsController < ApplicationController
...
item.remote_images_urls = [params[:image_url]]
...
end
在helper方法中注意正确的复数类型以及params的周围数组(carrierwave表示数组)。
答案 1 :(得分:0)
您需要使用item.remote_images_urls
而不是item.remote_images_url
并分配远程网址数组。虽然CarrierWave rubydoc建议我使用item.remote_image_urls
,但这对我有用。所以,也许你应该尝试其中一种。