web-dev-qa-db-ja.com

RailsアクティブストレージでURLから画像を保存する方法は?

Rails 5.2アクティブストレージを使用して、別のhttp Webサーバーにあるファイル(この場合は画像)を保存しようとしています。

ソースURLの文字列パラメーターを持つオブジェクトがあります。次に、before_saveでリモートイメージを取得して保存します。

例:画像のURL http://www.example.com/image.jpg

require 'open-uri'

class User < ApplicationRecord
  has_one_attached :avatar
  before_save :grab_image

  def grab_image
    #this indicates what I want to do but doesn't work
    downloaded_image = open("http://www.example.com/image.jpg")
    self.avatar.attach(downloaded_image)
  end

end

提案を事前に感謝します。

10
Ed_

私自身の質問に対する答えを見つけました。私の最初の本能はかなり近かった...

require 'open-uri'

class User < ApplicationRecord
  has_one_attached :avatar
  before_save :grab_image

  def grab_image
    downloaded_image = open("http://www.example.com/image.jpg")
    self.avatar.attach(io: downloaded_image  , filename: "foo.jpg")
  end

end
24
Ed_