【슈퍼 간단】 Faker를 사용하여 더미 데이터를 작성합시다!

Faker를 이용하여 앱에 더미 데이터를 생성합니다.
이번에는 devise에서 작성한 users 테이블에 더미 데이터를 투입해 갑니다.

Faker란?



Faker는 무작위 값을 생성하는 Gem입니다. 사람명, 메일 주소, 패스워드의 생성은 물론 게임의 타이틀이나 애니메이션의 캐릭터명등도 생성해 주는 장난기가 가득 담긴 Gem입니다.

그럼 즉시 사용합시다!

Faker 소개



gam 설치



Gemfile
gem 'faker'

터미널
bundle install

도입 완료.

더미 데이터 생성



이번에는 devise에서 생성되는 email과 password 외에 name 열을 추가하고 있습니다.

devise에서 생성되는 email 열에는 고유성 제약이 있으므로 Faker::Internet과 free_email 사이에 unique라고 기술하고 있습니다.

password도 디폴트에서는 6문자 이상이 아니면 등록할 수 없기 때문에 min_length: 6이라고 기술하고 있습니다. 이 근처는 자신이 제작하는 앱의 사양에 따라 적절히 변경해 갑시다.

db/seeds.rb
50.times do
  name = Faker::Name.name
  email = Faker::Internet.unique.free_email
  password = Faker::Internet.password(min_length: 6)

  User.create(
    name: name,
    email: email,
    password: password,
    password_confirmation: password
  )
end

터미널
rails db:seed

그럼 확인해 봅시다.


더미 데이터가 생성되었습니다.

일본어로 해보자.



Faker는 일부 일본어 대응하고 있습니다.

일본어화는 매우 간단합니다.
config/application.rb에 config.i18n.default_locale = :ja라는 설명을 추가하기 만하면됩니다.

config/application.rb
module アプリ名
 class Application < Rails::Application
   # Initialize configuration defaults for originally generated Rails version.
   config.load_defaults 6.0
   config.i18n.default_locale = :ja #追加
   # 省略
 end
end

터미널
rails db:seed


일본어화 완료.

번외편



여기부터는 번외편입니다.
더미 데이터의 이름을 변경해 봅시다.
자세한 내용은 공식 문서을 참조하십시오.

먼저 ja.yml 파일을 만듭니다.

터미널
touch config/locales/ja.yml

여기 의 기술을 작성한 ja.yml에 copipe 해 일본어화합시다.
※일본어화할 수 있는 것은 일부뿐입니다.

포켓몬의 경우



db/seeds.rb
50.times do
  name = Faker::Games::Pokemon.name #変更
  email = Faker::Internet.unique.free_email
  password = Faker::Internet.password(min_length: 6)

  User.create(
    name: name,
    email: email,
    password: password,
    password_confirmation: password
  )
end

터미널
rails db:seed



슈퍼 마리오의 경우



db/seeds.rb
50.times do
  name = Faker::Games::SuperMario.character #変更
  email = Faker::Internet.unique.free_email
  password = Faker::Internet.password(min_length: 6)

 #以下略

터미널
rails db:seed



드래곤볼의 경우



db/seeds.rb
50.times do
  name = Faker::JapaneseMedia::DragonBall.character #変更
  email = Faker::Internet.unique.free_email
  password = Faker::Internet.password(min_length: 6)

 #以下略

터미널
rails db:seed


이쪽은 일본어 대응하고 있지 않는 것 같습니다.

이상이 됩니다.

좋은 웹페이지 즐겨찾기