Стаття українською. Ruby on Rails, seed, gem Faker — генерація фейкових даних

Oleksii Voitsekhovych
2 min readAug 28, 2022

В попередній статті ми розглянули як за допомогою STI та belongs_to — створити моделі і структуру даних для зберігання адреси. В цій ми розглянемо як за допомогою gem Faker згенерувати трохи даних для подальшого експериментування. Почнемо.

Для початку трохи теорії.

Перше — для генерації стартових даних в проектах Ruby on Rails — використовується механізм seed. Що це таке:

To add initial data after a database is created, Rails has a built-in ‘seeds’ feature that makes the process quick and easy. This is especially useful when reloading the database frequently in development and test environments. It’s easy to get started with this feature: just fill up db/seeds.rb with some Ruby code, and run rails db:seed

Тобто, в файл seeds.rb — ми пишемо звичайний ruby код — котрий виконається і зробить те що нам потрібно.

Далі, що таке gem Faker.

A library for generating fake data such as names, addresses, and phone numbers.

Тобто, за допомогою цього gem — можна згенерувати собі дані — котрі на перший вигляд будуть схожі на реальні. Там дуже багато типів даних — всі їх можна глянути тут — https://github.com/faker-ruby/faker#generators

Ну а ми використаємо Faker::Address, а конкретно в нашому випадку буде використано: Faker::Address.state_abbr, Faker::Address.city, Faker::Address.street_name.

Ну що ж — пишемо код.

В файл db/seeds.rb пишемо наступне

seeds.rb

Що ми тут робимо. Спочатку видаляємо всі дані. потім додаємо 10 штатів, в кожний штат — 10 міст, і в кожне місто — 10 вулиць.

Тепер запускаємо за допомогою команди rails db:seed

Ну і звісно перевіряємо нашим старим методом :)

p ActiveRecord::Base.connection.exec_query(‘select * from address_parts’)

Ось і все. У нас є блок даних для роботи з адресами. А в наступній статті ми побалакаємо як за допомогою Rails та Stimulus згенерувати 3 випадайки в котрі динамічно будуть загружатись пов’язані дані.

--

--