ホーム DoRuby FactoryBot と Gimei を使って架空のユーザを作る
FactoryBot と Gimei を使って架空のユーザを作る
 

FactoryBot と Gimei を使って架空のユーザを作る

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

Railsアプリで、開発用の seed として FactoryBot と Gimei を組み合わせて架空のユーザデータを作ったが、ちょっとコツが必要だったのでメモっておく

ポイント

  • Gimei のインスタンスを Transient Attribute に割り当てる
  • 同一の Transient Attribute から「漢字名」と「よみがな」を生成する

コード

以下のような factory を用意

# spec/factories/account.rb
FactoryBot.define do
  factory :user do
    transient do
      person { Gimei.name }
      address { Gimei.address }
    end

    # ユーザ名
    last_name { person.last.kanji }
    first_name { person.first.kanji }
    last_name_kana { person.last.hiragana }
    first_name_kana { person.first.hiragana }

    # 住所
    prefecture { address.prefecture }
    city { address.city }
  end
end

実行例

factory からデータを生成してみる。

FactoryBot.build_list(:account, 10).pluck(:last_name,:last_name_kana,:first_name,:first_name_kana,:prefecture,:city)
=> [["片桐", "かたぎり", "朋江", "ともえ", "青森県", "横浜市緑区"],
 ["長沢", "ながさわ", "康太郎", "こうたろう", "愛媛県", "秩父郡皆野町"],
 ["堀内", "ほりうち", "善高", "よしたか", "兵庫県", "北相馬郡利根町"], ["福原", "ふくはら", "朋也", "ともや", "京都府", "村山市"],
 ["岩崎", "いわさき", "章太", "しょうた", "高知県", "各務原市"],
 ["榎本", "えのもと", "歩海", "ほのみ", "岩手県", "高浜市"],
 ["岸本", "きしもと", "治", "おさむ", "徳島県", "田原市"], ["亀井", "かめい", "立樹", "たつき", "鹿児島県", "玉名郡和水町"],
 ["本間", "ほんま", "果桜", "かお", "東京都", "山県市"],
 ["吉野", "よしの", "京介", "きょうすけ", "長崎県", "真庭郡新庄村"]]

ちゃんと、漢字名とひらがなの対応が取れている。

参考

記事を共有

最近人気な記事