seed_fuでidが無いモデルへのデータ投入

Pocket
LinkedIn にシェア
LINEで送る
Facebook にシェア

Railsでseed_fuを使っている場合にidを削除したモデル(関連テーブルなど)へのデータ投入方法メモ

role_user = CSV.read("db/fixtures/#{Rails.env}/role_user.csv")

role_user.each_with_index do |r, i|
  next if i === 0

  role_id = r[0]
  user_id = r[1]

  RoleUser.seed(:role_id, :user_id) do |s|
    s.role_id   = role_id
    s.user_id = user_id
  end
end

ロールとユーザの関連テーブル(RoleUser role_id:integer user_id:integer)に投入する場合は複合キーを指定する(レコードが一意になる組合せ)