RUBY_RAILS 使用转载:活动记录纵览 活动RubyRailsMySQLActiveRecord
使用活动记录的步骤
虽然使用活动记录映射数据表不需要复杂的设置,但我们必须按着活动记录所制定的规范进行操作。这些规范将成为活动记录工作的一部分,以下就是使用活动记录的步骤。
1.建立表
2.连接数据库
3.建立ORM
4.进行增、删、改操作
第一步需要完全按着规范来做。建立表的过程一定要严格按着规范进行,否则就会覆盖活动记录的默认值。以下是建立表的详细过程:
·建立表
如果你不想在映射时做大量的工作,那么数据表必须按着活动记录所制定的规范来建立。过程如下:
1.表名应该是复制形式(如orders)。
2.主键应该被命名为Id,它的数据类型应该是整型。
如果某个表引用了另外一个表,那么这个表的外键应该按如下格式取名:
<表名的单数形式>_id
因此,按着上面两条规范建立orders表的SQL语句(MySQL数据库)如下:
create table orders ( id int not null auto_increment, name varchar(50) not null, … … primary key (id) ); |
·连接数据库
就象RoR的其它操作一样,数据库的连接也是非常快速的。这就意味着活动记录在内部做了很多的工作,如自动侦测特定的数据库适配器的细节。为了连接数据库,必须使用相应的连接参数调用Base类的establish_connection()方法。这些参数根据数据库的不同而不同。下面的语句是使用establish_connection通过用户名、密码、数据库等信息连接本机MySQL数据库,其中"encoding =>gb2312"是为了操作中文所需。
establish_connection( :adapter => "mysql", :host => "localhost", :username => "root", :encoding => "gb2312", :password => "1234", :database => "test" ) |
·建立ORM
在建立完数据库和表后,下一步就是将这个数据表映射成Ruby的类。我们从上述可知,RoR映射数据表是非常快的。只要一个类从ActiveRecord::Base继承,数据表就自动映射成了Ruby类(类名为表名的单数形式)。下面是将orders表映射成Order类的代码:
class Order < ActiveRecord::Base … … end |
·进行增、删、改操作
对一个数据表最常用的三种操作就是增、删、改。这也是一个数据库应用程序的其本的操作。使用活动记录对数据表进行这三种操作是非常容易的。下面的代码将描述如何使用活动记录对数据进行这三种操作。
·增加记录
增加记录是在建立一个空表后应该做的第一件事。在活动记录中为我们建立了new方法来向表中增加记录,并通过update_attributes方法保存新增加的记录。代码如下:
order = Order.new order.name = "computer" order.update_attributes(params[:order]) |
·删除记录
为了删除记录,活动记录提供了delete方法。这个方法支持单行删除,也支持多行删除。以下语句删除了id等于12的记录:
Order.delete(12) |
下面的语句删除了多条记录:
Order.delete([3, 54, 100]) |
·修改记录
在修改记录之前,首先要确定要修改的记录,这一过程一般使用查询来完成。因此,修改就是查询和更新记录的组合。如下面的语句将id=100的记录中的name的值改为"car"。
order = Order.find(100) order.name = "car" order.save |
上面的代码只是粗略地描述了一下活动记录的功能。我们将在下面的实例中演示如何将活动记录和ActionController以及ActionView一起使用建立一个登录程序。