Код IT
← Каталог

Работа с базами данных из Ruby — Ассоциации — связи между сущностями

Фрагмент из «Работа с базами данных из Ruby»: Ассоциации — связи между сущностями.

Ruby main.rb

Разбор:
- Фрагмент показывает конкретный сценарий, который стартует со строки `Важно: **ActiveRecord не кэширует сами данные** — каждый вызов `find` идёт в БД (если не и` и задаёт контекст выполнения.
- Ключевые элементы блока: `find`, они определяют основную логику примера.
- По шагам код выполняется так: `Важно: **ActiveRecord не кэширует сами данные** — каждый вызов `find` -> `---` -> `#### Соглашения по умолчанию` -> `ActiveRecord строго следует принципу *"convention over configuration`.
- Практически важно добавить обработку ошибок и явные проверки входа, чтобы исключить скрытые падения в рантайме.
- Типичная ошибка при развитии такого кода — смешивать бизнес-правила и инфраструктурные детали в одном месте; лучше разделять ответственность.

class User < ActiveRecord::Base
  has_many :posts
  has_one :profile
  belongs_to :department
end

class Post < ActiveRecord::Base
  belongs_to :user
  has_and_belongs_to_many :tags
end

Разбор:
- Фрагмент показывает конкретный сценарий, который стартует со строки `Важно: **ActiveRecord не кэширует сами данные** — каждый вызов `find` идёт в БД (если не и` и задаёт контекст выполнения.
- Ключевые элементы блока: `find`, они определяют основную логику примера.
- По шагам код выполняется так: `Важно: **ActiveRecord не кэширует сами данные** — каждый вызов `find` -> `---` -> `#### Соглашения по умолчанию` -> `ActiveRecord строго следует принципу *"convention over configuration`.
- Практически важно добавить обработку ошибок и явные проверки входа, чтобы исключить скрытые падения в рантайме.
- Типичная ошибка при развитии такого кода — смешивать бизнес-правила и инфраструктурные детали в одном месте; лучше разделять ответственность.

class User < ActiveRecord::Base
  has_many :posts
  has_one :profile
  belongs_to :department
end

class Post < ActiveRecord::Base
  belongs_to :user
  has_and_belongs_to_many :tags
end