seedsについて
アプリに初期データを入れておきたい場合にseedsを使います。
このファイルにデータを生成するコードを書き、コマンドを実行することでデータベースにテストデータを投入することができます。
seedsの使い方
通常はseeds.rbのみに記述しますが、今回は2つのファイルに分けて記述します。
データを追加するためのスクリプト
db/seeds.rb
table_names = %w(staff_members)
table_names.each do |table_name|
path = Rails.root.join("db", "seeds", Rails.env, "#{table_name}.rb"
if File.exist?(path)
puts "Creating #{table_name}..."
require(path)
end
end
実行したいクエリ(投入するデータ)
db/development/staff_members.rb(新規作成)
StaffMember.create!(
email: "test@example.com",
family_name: "テスト",
given_name: "太郎",
family_name_kana: "テスト",
given_name_kana: "タロウ",
password: "password",
start_date: Date.today
)
seedの実行
データの投入
$ bin/rails db:seed
このコマンドは、db/schema.rbの内容を読み込んでデータベースの構造を作り直し、seedデータを投入する
データの投入をやり直す
$ bin/rails db:reset
指定した文字列をRailsアプリケーションの文脈で実行するコマンド。投入に成功していれば「1」が表示される
正しくデータが投入されたか確認する
$ bin/rails r "puts StaffMember.count"
属性の値を調べたい場合
$ bin/rails r "puts StaffMember.first.属性の値"