【Rails】seeds.rbを書く
前提
app/models/product.rb
# frozen_string_literal: true class Product < ApplicationRecord has_one :stock end
app/models/stock.rb
# frozen_string_literal: true class Stock < ApplicationRecord belongs_to :product end
書く
db/seeds.rb
# frozen_string_literal: true 5.times do |n| Product.create!( name: "商品#{n + 1}", price: 10_000 ) end Product.all.each do |product| product.create_stock!( quantity: 99 ) end
実行
DBを作り直す必要がなければ、rails db:seed
のみでOKです。
(DBを作成し直すなら) $ rails db:migrate:reset $ rails db:seed
ちなみに rails db:reset
はDBを db/schema.rb
から作り直して、そのままrails db:seed
を実行しているようです。
(勝手にデータが入っている)
$ rails db:reset