mac OS バージョン11.6
エディタ…VScode
Rails 6.0.4
テストデータを作るとマイグレーションファイルをresetした時にすぐにデータを呼び戻せる→開発がよりスムーズにいくとのことなので、Railsで用意されているシーディングを学んでいきます。
railsではseedファイルに入れておきたいデータをdb/seeds.rb
に記述していきます。
seeds.rb
Movie.create!(
title:'存在のない子供たち',
image:File.open('./app/assets/images/1015706_03.jpeg'),
released_year:'2019',
country:'レバノン',
screening_time:'125',
synposis:'中東の貧民窟で暮らす12歳のゼインは、貧しい両親が出生届を提出していないため、IDを持っていない。ある日、ゼインが仲良くしていた妹が、知り合いの年上の男性と強制的に結婚させられてしまい、、、',
genre:'ドラマ',
released_month:'7',
released_day:'20'
)
それぞれコンマで区切るのを忘れないようにします。そして、
% rails db:seed
(DBをリセットしたい場合はrails db:migrate:reset
でリセットできます)
上のseeds.rb
でも画像を載せていますが、railsで画像を扱うためにここではCarrierWaveを使っています。
手順↓
.Gemfile
gem 'carrierwave'
$ bundle install
次にアップローダーを作成する
$ rails g uploader image //imageは任意の名前
モデルのアソシエーション
movie.rb
class Movie < ApplicationRecord
mount_uploader :image, ImageUploader
end
登録したい画像を用意
app/assets/images
の中に画像を格納します。VScodeなんかだと画像をドラッグ&ドロップとかでできます。
seeds.rbに記入しデータを作成(前後の行省略)
seeds.rb
image:File.open('./app/assets/images/1015706_03.jpeg'),
% rails db:seed