LoginSignup
1
0

More than 1 year has passed since last update.

【Rails】seedの使い方

Posted at

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

↓参考
https://qiita.com/tama_chi/items/44ec59e548bcfe14b4e7

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0