Active Record2024年12月18日 | 3 分钟阅读 数据结构由类的层次结构表示。 数据主要存储在关系数据库表中。 您的程序的对象视图和数据库的关系数据视图之间存在本质上的不匹配。 为了消除这种不匹配,已经尝试了许多方法。 解决这种不匹配的一种方法是使用对象关系映射 (ORM) 工具。 ORM 是将关系数据库表映射到面向对象的类。 一个完美的 ORM 隐藏了数据库关系数据在对象层次结构后面的细节。 在 Rails 中,ORM 由 Active Record 实现,它是 Rails 库中最重要的组件之一。 ORM 在数据库如何处理其数据和面向对象的应用程序如何处理其数据之间提供了一个映射层。 它将数据库表映射到类,将数据库表行映射到对象,并将数据库表列映射到对象属性。 Active Record 主要为您执行映射过程。 使用 Active Record 时,您不再需要处理数据库结构,例如表、行或列。 您的应用程序只处理类、属性和对象。 ![]() Active Record 基于 Martin Fowler 创建的设计模式。 正是基于这种设计模式,Active Record 才获得了它的名字。 即使代码行数较少,它的代码也能很好地工作。 很容易使用。 如果在您的数据库和类中遵循适当的命名方案,则 Active Record Rails 应用程序根本不需要任何配置。 Active Record 还有另一个功能可以使您的工作更轻松,即域特定语言 (DSL) 的实现。 DSL 是一种旨在用于特定问题域的编程语言。 它允许您使用动态生成的方法,例如检索记录,使用方法 find_by_first_name。 Active Record 基础知识Active Record 的一些基础知识是类、对象和命名约定。
数据库中的每个表通常由一个扩展 Active Record 基类的类表示。 通过扩展 Active Record 基类,模型对象继承了许多功能。 使用 Active Records 时,您不必设置任何数据库连接。 它管理应用程序的所有数据库连接。 它为数据库中的每一列向您的类添加属性。 Active Record 使用 CoC(约定优于配置)原则。 遵循命名约定,您可以利用 Active Record 的许多动态功能,而无需任何配置。 类和数据库数据库表应使用模型类的复数形式和小写形式命名。 例如,如果模型类的名称是 Student,则对应的表名将是 students。 借助此约定,Rails 将自动找到模型类对应的表,而无需任何配置代码。 它甚至支持复数名词,例如“people”作为“person”的复数形式。 Rails 提供了一个设施,您可以在其中为模型添加复数。 要定义您自己的复数形式,请使用 Inflector 将代码添加到 config/environment.rb。 在某些情况下,如果您不想用复数形式命名数据库,可以通过将以下行添加到 config/environment.rb 来配置具有单数命名数据库表的 Rails 下一个主题Ruby on rails mvc |
我们请求您订阅我们的新闻通讯以获取最新更新。