与 Ruby on Rails 相关的 ORM 是啥?

Posted

技术标签:

【中文标题】与 Ruby on Rails 相关的 ORM 是啥?【英文标题】:What is ORM as related to Ruby on Rails?与 Ruby on Rails 相关的 ORM 是什么? 【发布时间】:2010-02-03 19:46:05 【问题描述】:

什么是适用于 Rails 的 ORM,它的含义是什么?

【问题讨论】:

【参考方案1】:

ORM 是对象关系映射器。这意味着您不必自己手动调用数据库; ORM 会为您处理。

Ruby on Rails 使用一种称为 ActiveRecord 的方法,它非常好。

ORM 允许您执行以下操作:

User.find(50).contacts

而不是手动编写带有 JOIN、WHERE 等的 SELECT 语句。

【讨论】:

现在我知道了,mike。还有其他 ORM 然后是活动记录吗? Ruby还有其他的ORM工具(DataMapper、Sequel、Friendly等),Ruby on Rails(DrySQL)也有一些,但Active Record一般是配合Rails使用的。其他语言有很多 ORM; Hibernate 可能是最著名的。 在正式的 Rails 中(“开箱即用”)这些只是 ActiveRecord。对于 Ruby,还有一些其他的 ORM(一个叫做 DataMapper,似乎受到了很多关注),但是这些其他的需要一些工作才能在 Rails 中工作【参考方案2】:

ORM 代表对象关系映射。这基本上意味着 Active Record 使用行和列获取存储在数据库表中的数据,这些数据需要通过编写 SQL 语句来修改或检索(如果您使用的是 SQL 数据库),它允许您与该数据进行交互就好像它是一个普通的 Ruby 对象一样。

示例:假设您想获取所有用户的数组,而不是编写任何用于数据库连接的代码,然后编写一些 SQL 查询(如 SELECT * FROM users)并将结果转换为数组,我只需键入 User.all Active Record 为我提供了一个充满用户对象的数组,我可以随意使用它们。

您使用哪种类型的数据库并不重要。 Active Record 为您消除了这些数据库之间的所有差异,因此您不必考虑它。您专注于为您的应用程序编写代码,Active Record 会考虑将您连接到数据库的细节。这也意味着如果你从一个数据库切换到另一个数据库,你实际上不需要更改任何主要的应用程序代码,只需要更改一些配置文件。

【讨论】:

【参考方案3】:

ORM 是对象关系映射器。这意味着您不必自己手动调用数据库; ORM 为您处理它。 Ruby on Rails 使用一种称为 ActiveRecord 的方法,它非常好。

作为 ORM 框架的 Active Record

Active Record 为我们提供了多种机制,其中最重要的是能够:

> Represent models and their data.
> Represent associations between these models.
> Represent inheritance hierarchies through related models.
> Validate models before they get persisted to the database.
> Perform database operations in an object-oriented fashion.

click hear

【讨论】:

【参考方案4】:

ORM 的主要优势

映射语言类型,例如整数、字符串、日期到数据库类型

为您解析数据库输出。如果没有,您将不得不自己解析来自数据库的字节流

跨数据库可移植性。 mysql、PostgreSQL 等都扩展了 SQL 标准,因此每个扩展的语法都会略有不同。

此外,启动连接和从输出流中读取输出的确切方式会有所不同。一个好的 ORM 允许你编写一个代码,可以在多个底层数据库上工作。

【讨论】:

以上是关于与 Ruby on Rails 相关的 ORM 是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on rails 培训通知及相关材料

Ruby On Rails框架相关

Ruby on Rails Tutorial 第二章

用于 ruby​​ on rails 的 Mahout 插件

如何在 ruby​​ on rails 中使每个 user_id 的列数据唯一

Ruby on Rails 中的多个用户角色