0

我继续自己研究hanami,我遇到了这样一个事实,即在生成用户模型时,hanami 会生成2个实体和包含文件的存储库目录

实体目录中的 user.rb

class User < Hanami::Entity
end

存储库目录中的 user_repositories.rb

class UserRepository < Hanami::Repository
end

我阅读了文档,但我仍然不明白应该在哪些类中描述关联验证,或者为什么原则上需要这些类中的每一个,因为在 RoR 中我们需要 1 个模型。请解释 (

4

1 回答 1

1

来自花见的卢卡在这里 :)

实体

实体是由其身份定义的域对象。

实体是应用程序的核心,其中实现了领域逻辑的一部分。它是一个小而有凝聚力的对象,表达了连贯且有意义的行为。

存储库

在实体和持久层之间进行调解的对象。它提供了一个标准化的 API 来在数据库上查询和执行命令。

简而言之:实体是您的业务逻辑和数据持有者,存储库是一种从/向数据库读取/写入数据的方式。

如果您熟悉 Rail 的 ActiveRecord,这就像将 Rails 模型分成两个职责:一个实现业务逻辑,一个处理数据库。


验证:我们不会将验证与模型混合。我们鼓励您将验证放在InteractorsActions中。

原因在我的一篇博文中有解释。[请注意 Hanami 以前称为 Lotus]

于 2021-10-26T14:27:01.440 回答