快速业务通道

Ruby on Rails的活动记录纵览 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
,必须使用相应的连接参数调用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])

Ruby on Rails的活动记录纵览(5)

时间:2011-11-09 天极 李宁

删除记录

为了删除记录,活动记录提供了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一起使用建立一个登录程序。

实例

这个登录程序非常简单。下面将描述这个程序的基本功能:

这个程序有一个窗口允许用户输入用户名和密码。在输入用户名和密码后,系统将会验证它们的合 法性。在用户登录后,系统将这个用户的信息记录在session中,直到它们注销登录。

下面将描述组成系统的模块:

User.rb - 数据表(users)的映射

login_controller.rb - 控制前端和后端的数据流

login.rhtml - 显示登录界面

下面是建立users表的SQL语句:

create table users ( id int not null auto_increment, name varchar(100) not null, password char(40) null, primary key (id); }

Ruby on Rails的活动记录纵览(6)

时间:2011-11-09 天极 李宁

接下来我们处理数据表映射类。由于我们正在使用RoR中的活动记录。因此,除了可以使用 establish_connection方法连接数据库外,我们还可以使用config目录中的database.yml文件来描述数据 库连接信息。如下是在database.yml的development中的设置情况:

development: adapter: mysql database: test encoding: gb2312 username: root password: 1234 host: localhost

然后使用以下命令建立数据表映射类User:

ruby script/generate model User

这个User类包含两个方法:try_to_begin(这个方法调用login方法)和login。代码如下:

class User < ActiveRecord::Base def

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号