进入DataMapper
为了回答这些问题,我决定搜索Stack Overflow。现在的共识就是使用一个叫作DataMapper的程序库让这类开发变得更加容易。
DataMapper是一种叫作“对象关系映射”的程序,通常缩写为ORM。ORMs能够为程序员解决一个迫在眉睫的问题:数据库经常使用它们自己的语言,这和程序员用来创建应用的语言有所不同。最常见的数据库语言叫SQL,但同时也有数百种其他语言。
假设我们是Amazon.com的一名程序员,我们想展示哈利波特系列的作者J.K.罗琳的书籍清单。这个SQL命令可能如下:
SELECT * FROM Book WHERE author = “J.K.Rowling” ORDER BY title;
这个命令会检索书籍数据库当中含有J.K.罗琳的所有记录,然后按标题字母顺序将它们列出。
不幸的是,让SQL或任何其他数据库查询语言与像Ruby这样的语言很好的契合是非常不容易的。使用一种语言进行编程已经很困难了,更别提同时使用几种语言了。
这就是ORMs产生的原因:它们允许程序员使用一种语言编程,然后用ORM将它们转换为数据库的语言。这就简单多了。
DataMapper是一种程序库,它让与使用Ruby的数据库的沟通变得更加容易。在默认情况下,DataMapper提供了许多有用的功能用于创建、读取、更新和删除数据库记录。因为DataMapper的面世已经有一段时间,而且经过了全面测试,所以在大多数情况下,它比你自己编写的数据库代码更加可靠。
DataMapper以一种程序的样式存在,它是这样安装的:
$ gem install data_mapper
虽然DataMapper是一个如此巨大的程序库,但是它也可以一块一块地进行安装。那就是一种叫作“模块化”的概念,而且它是好的编程的标志。以下就是安装所有个体程序库的命令:
$ gem install dm-core dm-aggregates dm-constraints dm-migrationsdm-transactions dm-serializer dm-timestamps dm-validationsdm-types
不用安装整个程序库,你只需要安装你的程序将会用到的部分,这样就更加高效了。
注意:环境中这些都已安装,直接使用即可。