加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Carrierwave通过“heroku rails console”从生

发布时间:2020-12-17 03:05:53 所属栏目:百科 来源:网络整理
导读:我有一个简单的应用程序上传我在博客数据库中使用carrierwave保存的图片. (有标题,正文和图像),我的证书工作正常. 我在这个网址的s3帐户中上传了一张图片: /s3.amazonaws.com/Buket_name/..path../thumb_smile.png 如何使用heroku rails控制台中的映像更新
我有一个简单的应用程序上传我在博客数据库中使用carrierwave保存的图片.
(有标题,正文和图像),我的证书工作正常.

我在这个网址的s3帐户中上传了一张图片:
/s3.amazonaws.com/Buket_name/..path../thumb_smile.png

如何使用heroku rails控制台中的映像更新数据库.
这似乎不起作用:

b = Blog.new
b.title = "a blog"
b.body = "some text"
b.image =  File.new("s3.amazonaws.com/Buket_name/..path../thumb_smile.png","a")
or
b.image =  File.open("s3.amazonaws.com/Buket_name/..path../thumb_smile.png","r")

Errno::ENOENT: No such file or directory - 
s3.amazonaws.com/Buket_name/..path../thumb_smile.png

解决方法

使用CarrierWave的 remote_{name}_url=属性可以获得最简单的解决方案.

b = Blog.new
b.title = "a blog"
b.body = "some text"
b.remote_image_url = 'http://s3.amazonaws.com/Buket_name/..path../thumb_smile.png'
b.save

此功能特定于CarrierWave,因此如果您要与其他库执行类似操作,请使用标准库中的open-uri.

require 'open-uri'
image = open('http://s3.amazonaws.com/Buket_name/..path../thumb_smile.png')

现在image是一个Tempfile,可以像Ruby脚本中的文件一样使用.

require 'open-uri'
image = open('http://s3.amazonaws.com/Buket_name/..path../thumb_smile.png')

b = Blog.new
b.title = "a blog"
b.body = "some text"
b.image = image
b.save

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读