Хамани: Сущности и репозитории, в чем разница?

Я продолжаю изучать ханами самостоятельно и столкнулся с тем, что при генерации модели пользователя ханами генерирует 2 сущности и каталоги репозиториев, которые содержат файлы.

user.rb в каталоге сущностей

      class User < Hanami::Entity
end

user_repositories.rb в каталоге репозиториев

      class UserRepository < Hanami::Repository
end

Я читал документацию, но так и не понял, в каком из этих классов следует описывать валидацию с ассоциациями или зачем каждый из этих классов в принципе нужен, так как в RoR нам нужна была 1 модель. пожалуйста, объясни (

1 ответ

Лука из Ханами здесь :)

Сущности :

Сущность - это объект домена, который определяется своей идентичностью.

Сущность - это ядро ​​приложения, в котором реализована часть логики предметной области. Это небольшой сплоченный объект, который выражает связное и значимое поведение.

Репозиторий :

Объект, который является посредником между сущностями и слоем постоянства. Он предлагает стандартизированный API для запроса и выполнения команд в базе данных.

В двух словах: сущности - это ваша бизнес-логика и держатель данных, репозитории - это способ чтения / записи данных из / в базу данных.

Если вы знакомы с ActiveRecord Rail, это похоже на разделение модели Rails на две обязанности: ту, которая реализует бизнес-логику, и ту, которая имеет дело с базой данных.


Валидации: мы не смешиваем валидации с моделями. Рекомендуется размещать проверки в интерактивных элементах или в действиях .

Причина объяснена в в моем сообщенииблоге . [Обратите внимание, что Ханами раньше назывался Лотос] .

Другие вопросы по тегам