テーブル構成はこんな感じ
create_table "posts", force: :cascade do |t|
t.string "title"
t.binary "image"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
今日やりたかったのは、一覧表示の確認をするために予め画像データを登録したかった。
seedでデータと一緒に登録できれば楽だなぁと思って頑張ってみた
for num in 1..10 do
image_path = File.join(Rails.root, "test/sample.jpg")
image = File.open(image_path, 'rb').read
Post.create(title: "title#{num}", image: image)
end
- サンプルになる画像を適当な場所に置く
-
File.open
でファイルを開いて、rb
モードで開く
※b
ってのがバイナリモードって意味。いまいち分かってないけどbinary型に登録するんだから付けるんだろうって思ってる。
※r
は読み込みモードって意味。
※read
メソッドは一度に読み込んで標準出力するんだって
後は、bin/rake db:seed
すれば登録できる