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
提案を事前に感謝します。
私自身の質問に対する答えを見つけました。私の最初の本能はかなり近かった...
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