ruby-on-rails - CarrierWave如何在给定的URL下存储文件

标签 ruby-on-rails carrierwave

我的CarrierWave通过典型的ORM设置工作正常,并通过表格上传。我想弄清楚如何在表单提交上下文之外使用CarrierWave。例如,当用户注册时,我想捕获他们的图像并将其存储在CarrierWave中。这是我的东西,它不起作用:

gravatar_url = "http://www.gravatar.com/avatar/#{Digest::MD5.new.update(current_user.email)}?s=512&d=identicon"

uploader = ImageUploader.new
uploader.store! gravatar_url

也没有错误。我一直在网上浏览,却找不到解决方案。

最佳答案

我在尝试弄清楚如何使store!与本地文件路径一起使用时遇到了很多麻烦。事实证明store!实际上将文件作为参数,而不是字符串。

对于URL,首先需要require 'open-uri',然后打开文件/ URL。这样的事情应该起作用:

require 'open-uri'
gravatar_url = "http://www.gravatar.com/avatar/#{Digest::MD5.new.update(current_user.email)}?s=512&d=identicon"
tempfile = open(gravatar_url)    

uploader = ImageUploader.new
uploader.store! tempfile

文件路径也可以使用相同的方法,但是在这种情况下,您不需要open-uri

关于ruby-on-rails - CarrierWave如何在给定的URL下存储文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7339797/

相关文章:

ruby-on-rails - 占位符文本作为模型标签

ruby-on-rails - 默认图像的 CarrierWave 完整 url

ruby-on-rails - rails : Uploading Images to Amazon S3 via Carrierwave only works on "Edit"

ruby-on-rails - Rails中的管理功能: Error: Couldn't find User with 'id' =

ruby-on-rails - 复合模型名称问题

ruby-on-rails - PaperClip 在处理之前检查是否存在

ruby-on-rails - 如何使用 Carrierwave 和 MiniMagick (Ruby on Rails) 将 PDF 转换为图像数组

jQuery-UI 可排序连接列表保存顺序和与 Rails 模型的关联

ruby-on-rails - 图片上传后压缩

编辑形式的载波