コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

ActiveStorageでフォーム経由ではなくファイルシステム上のものをattachする

ググると出てくるのはフォームでの利用事例ばかりでふと実githubのReadmeを見たら書いてあったので、日本語情報がてらメモ

環境

rails (5.2.0)
activestorage (5.2.0)

やり方

大前提の内容はRailsガイドに書いてあるとおり、テーブルを作って、has_one_attached のような関連性を定義する。今回はどこの事例にも出てくる以下のようなモデルの場合のケース。

class User < ApplicationRecord
  has_one_attached :avatar
end

ID10の useravatar./text.png みたいのをコンソールで当て込みたい場合は以下のような記述になる。

User.find(10).avatar.attach(io: File.open("./test.png"), filename: "test.png", content_type: "image/png")

関連リンク