blue workbench

Ruby and Rails

【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

参考

qiita.com

easyramble.com