Hanami::Model 指南
项目目录结构及介绍
Hanami::Model 是一个用于 Ruby 的轻量级 ORM(对象关系映射),它专注于简洁与分离关注点。在典型的 Hanami::Model 项目中,您会遇到以下核心目录结构:
src
: 这个目录存放主要的应用代码。hanami/model
: 当您使用 Hanami Model 时,可能不需要直接修改这里的文件,但这是框架的核心代码所在。
config
: 包含应用的配置文件。config/environment.rb
: 应用启动时首先加载的文件,用于设置环境和初始化应用程序。config/repositories.rb
: 在这里定义您的数据仓库,即如何映射模型到数据库表。
db
: 数据库相关的文件,虽然在 Hanami Model 中这更多涉及迁移和种子数据,但在 Hanami 项目整体中,此目录重要。schema.rb
: 描述数据库模式,定义了模型对应的数据库结构。
lib
: 存放非框架特定的自定义逻辑,对于 Hanami::Model 来说,通常不在此直接创建模型类,而是遵循 Hanami 的架构推荐,将模型放置在src
下。models
(或在某些 Hanami 架构布局中): 直接位于项目根目录或指定路径,存放所有模型定义文件。
项目的启动文件介绍
Hanami 项目没有传统意义上的“启动文件”来直接引导 Hanami::Model。然而,应用程序的入口点通常是 bin/hanami
, 它通过调用 hanami server
或其他命令来启动相应服务。真正涉及到初始化 Hanami::Model 配置和环境的是 config/environment.rb
文件,在这里可以进行如数据库连接等的配置初始化工作。
# config/environment.rb
require 'hanami/model'
Hanami::Model.configure do
adapter :sql, database: 'sqlite3:///db/app.db'
end
这段配置指定了 Hanami::Model 使用 SQL 适配器,并设置了 SQLite3 数据库存储位置。
项目的配置文件介绍
主配置 - config/environment.rb
正如前面提到,Hanami::Model 的配置大多发生在 config/environment.rb
。在这个文件里,您可以设置数据库连接参数,启用或禁用特性,以及任何特定于 Hanami::Model 的全局配置选项。
Hanami::Model.settings do
# 示例配置,实际使用需根据需求调整
repository do
adapter :rom_sql
dataset 'postgresql://localhost/my_database'
end
end
请注意,随着 Hanami 生态系统的更新,配置细节可能会有所变动,建议查阅最新的 Hanami 文档以获取最准确的信息。
数据仓库配置 - config/repositories.rb
此外,尽管严格上不算是“配置文件”,但 config/repositories.rb
用于定义和配置数据仓库,这些仓库是模型与数据库交互的关键抽象层。
repositories do
define :default do
use :memory
entities User
end
end
这个例子展示了如何定义一个使用内存存储的数据仓库,并且注册了 User
实体。
综上所述,汉密斯模型的设置分散在几个关键文件之中,确保了高度的可定制性和清晰的项目组织结构。