tkymtk's blog

Ruby on Rails及びその周辺について調べたこと。Do whatever you want to do at your own pace.

Fakerで本のデータを作る。

Rake task をつくる。

必要な情報

  • タイトル
  • 著者名
  • isbn

とりあえず、

rake db:populate

で10冊ほど本を追加できるようにする。

コード

  • lib/tasks/sample_data.rake
namespace :db do
  desc "Fill database with sample data"
  task populate: :environment do
    make_books
  end
end

def make_books
  10.times do
    title  = Faker::Name.title
    author = Faker::Name.name
    isbn   = Faker::Code.isbn(base = 13)
    Book.create!(title: title,
                 author: author,
                 isbn: isbn)
  end
end

実行

rake db:reset
rake db:populate
rake db:test:prepare

結果

Title Author Isbn
Product Identity Engineer 木村 陸斗 556497212780-6
International Communications Analyst 山本 杏 858942071178-6
Product Research Liason 佐々木 陽翔 885705447947-2
Future Factors Liason 山口 樹 582655254845-7
Human Configuration Officer 小林 颯太 652393639091-4
Chief Accounts Developer 加藤 太一 095336165425-5
Corporate Mobility Executive 林 陽菜 931102792924-5
Customer Implementation Coordinator 山田 太一 959671212007-1
District Tactics Associate 松本 蓮 200536248769-6
Chief Mobility Officer 吉田 颯太 856170961654-8

所感

  • Fakerってロケールが日本だと日本人の名前だすのか、初めて知った。
  • ファイルの拡張子.rakeではなく.rbにしてて、ずっと
    rake aborted! Don't know how to build task 'db:populate'
    ってエラーを出されてた。

リンク

間違いがあれば、ご指摘下さると幸いです。