Код IT Загрузка примера кода…

Ruby main.rb

Разбор:
- Фрагмент показывает конкретный сценарий, который стартует со строки `Плюсы:` и задаёт контекст выполнения.
- Ключевые элементы блока: `INSERT`, `id`, `Ruby`, `Factories`, `factory_bot`, они определяют основную логику примера.
- По шагам код выполняется так: `Плюсы:` -> `- скорость загрузки (один `INSERT` на таблицу);` -> `- стабильные `id`, удобно для тестов ассоциаций;` -> `- не требуют Ruby-логики.`.
- Для производительности важны индексы по условиям выборки, проверка плана выполнения и контроль N+1 при связях.
- Типичная ошибка при развитии такого кода — смешивать бизнес-правила и инфраструктурные детали в одном месте; лучше разделять ответственность.

FactoryBot.define do
  factory :user do
    name { "User #{sequence(:user)}" }
    email { "#{name.downcase}@example.com" }
    association :profile
  end
end

create(:user, name: 'Тимур') # → создаёт пользователя и связанный профиль

Разбор:
- Фрагмент показывает конкретный сценарий, который стартует со строки `Плюсы:` и задаёт контекст выполнения.
- Ключевые элементы блока: `INSERT`, `id`, `Ruby`, `Factories`, `factory_bot`, они определяют основную логику примера.
- По шагам код выполняется так: `Плюсы:` -> `- скорость загрузки (один `INSERT` на таблицу);` -> `- стабильные `id`, удобно для тестов ассоциаций;` -> `- не требуют Ruby-логики.`.
- Для производительности важны индексы по условиям выборки, проверка плана выполнения и контроль N+1 при связях.
- Типичная ошибка при развитии такого кода — смешивать бизнес-правила и инфраструктурные детали в одном месте; лучше разделять ответственность.

FactoryBot.define do
  factory :user do
    name { "User #{sequence(:user)}" }
    email { "#{name.downcase}@example.com" }
    association :profile
  end
end

create(:user, name: 'Тимур') # → создаёт пользователя и связанный профиль