APP下载

基于Rails框架的电子商务网站研究与设计

2010-03-27程娇华

电脑与电信 2010年8期
关键词:商品信息购物车应用程序

程娇华

(福建农林大学软件工程学院,福建福州350002)

1.引言

随着着中国市场经济的日趋成熟,中国企业面对的竞争压力越来越大,企业要想生存,在提高企业内部管理效率、充分利用企业内部资源的基础上,必须不断扩展销售渠道,扩大消费群体,提高企业的竞争力。随着信息化时代的到来,电子商务网站成为企业对外展示商品信息、从事商务活动的窗口。如何建立企业的电子商务网站,把企业业务扩展到Internet上,已成为现代企业发展的一个重点。

因此,本文通过对Rails框架的体系结构进行深入分析的基础上,结合Rails框架的特点,设计出了基于Rails框架的电子商务网站。通过该网站,一方面可以加强对企业产品销售的标准化、规范化管理,全面提高企业营销的管理水平和信息化程度;另一方面能够合理利用人力和物力资源,有效地管理各种业务与关系,缩短销售周期、降低销售成本、增加收益,从而增强企业的市场竞争力。

2.Rails框架的体系结构

Rails是一个用Ruby编程语言编写的、开源的Web应用程序框架,它为程序开发人员提供强大的框架支持。Rails的目标是可以用轻松直接的方式,并用尽量少的代码来开发Web应用。Rails不同于现有复杂的Web开发框架,它是一个更符合实际需要而且更高效的Web框架,它结合了PHP体系快速开发的优点和Java体系程序规整的优点。Rails框架实现了MVC(model-view-controller,模型-视图-控制器)体系结构。MVC是一个设计模式集,它分离了数据模型、用户界面和应用程序的控制逻辑。分离后的代码保存在3个层中[1,2]:

(1)模型层:封装了应用程序中数据操作相关的代码。应用程序对原始数据存储的任何动作都会经由此层。修改或添加数据存储中的数据含义的操作代码要在此层中执行。

(2)视图层:即表现层,封装了程序的页面和表单。它负责向用户展示应用程序的执行结果。

(3)控制器层:包含了应用程序的控制逻辑。控制程序流程的代码以及用户触发某个方法后将要执行的代码存放在此层中。

各个组件之间的关系如图1所示。

3.基于Rails框架的电子商务网站设计

基于Rails框架的电子商务网站主要就是实现网上购物的信息化管理,因此电子商务网站最核心的功能就是实现网上在线销售功能,以扩展企业的销售渠道,扩大企业产品消费群体,提高企业的效益。

3.1 开发平台的搭建

作为开源语言,Ruby被移植为可以在许多不同计算机平台和架构体系上运行的语言。包括M icrosoftWindows(95/98/XP/Vista)、Linux、MS-DOS、BSD、BeOS等。为了方便起见,本课题选择在Windows XP下搭建开发平台。首先下载并安装最新的Ruby 1.9.1-p378一键安装包。然后通过RubyGems安装Rails,RubyGems是标准的Ruby包管理器,它的功能类似于Linux下的apt-get。使用RubyGems可以方便地从远程服务器下载并安装Rails。安装成功后,在命令行窗口中输入并运行rails–v,系统将会显示Rails的版本信息,如图2所示,显示的Rails版本为2.3.5。

图2 Rails的版本信息

3.2 数据库设计

目前Ruby语言只支持以下几种数据库:Oracle、IBM DB2、MySQL、PostgreSQL、SQLite、Microsoft SQL Server和Firebird,这些数据库各有优劣。由于MySQL是一个优秀的开源数据库管理系统,它具有快速、易用的特点,因此受到了全球开发者的广泛支持,而且Ruby on Rails框架直接集成了到MySQL数据库的接口,因此MySQL数据库比较适合作为Ruby on Rails开发的后台数据库。本文也使用MySQL数据库管理系统对后台进行创建和管理。

通过对网站进行需求分析可知,电子商务网站中使用的数据库实体对象分别为商品类型、商品信息、商品订单、商品订单明细和管理员实体。其中,商品订单实体对应的数据表如表1所示。

表1 商品订单信息表

3.3 电子商务网站的实现

3.3.1 网站首页设计

在电子商务网站的首页商品展示区中应该能够使客户在第一时间看到该企业最新推出的精品展销、最新商品及热门商品,而且在“商品分类列表”中客户可以对商品进行分类浏览查询,并根据自己的喜好购买所需的商品。

在/app/views/main路径下,编写Book_Info.rhtm l视图,用于显示企业展示商品的基本信息。部分代码片段如下:

展示商品信息页面不会被重载,页面内容也不会被刷新,只是局部更新,这是由于程序中使用了Rails框架中的Ajax技术。客户可以通过点击展示商品信息模块中的商品照片,直接进入购物车管理页面。

3.3.2 购物车管理模块设计

购物车功能的实现是电子商务网站设计的关键,主要用于显示及管理用户的购物信息。用户通过购物车管理页面,可以进行查看和编辑商品信息等操作。购物车管理页面实现的功能主要包括添加商品到购物车、浏览购物车中的商品信息、修改购物车中的商品信息、删除购物车中的商品和清空购物车等。

本页面通过在admin_control.rb控制器文件中添加list_product方法实现添加购买商品记录进数据库,代码片段如下:

系统调用了Rails提供的paginate方法来返回当前页的product对象和paginator对象(用于分页设置),这些product对象是按照OrderTime和product_id进行排序的;并且,在paginator对象中将每页最多显示的记录条数设置为5。然后,将返回的product对象和paginator对象分别赋值给@products_pages和@products两个实例变量。

在adm in_control.rb控制器文件中添加destroy_product方法实现从数据库中删除一条商品记录,代码片段如下:

Model文件中不需要另外添加任何代码。客户在浏览所有商品的页面中选择一条购买商品记录,单击它的“删除”链接,并在确认提示窗口中单击“确定”按钮,即可看到浏览所有商品的页面中少了一条刚才删除的购买商品记录。

3.3.3 在线支付模块设计

在线支付功能一般由两部分组成,一是选择在线支付方式,二是填写自己的支付卡号和支付密码,完成订单支付。为了拓展银行业务,目前许多大型银行都在网上开设了网上银行业务,并提供相应的网上银行支付接口。因此,客户在完成购物车中的商品信息的修改后,电子商务网站将给客户生成一个订单(有一个唯一的订单号),单击“提交”按钮即可进入“选择支付方式”页面(PayWay.rhtm l),在该页客户可以选择在线支付方式进行在线付款,其运行效果如图3所示。

实现该功能的具体步骤如下:首先将一个表格(Table)控件置于PayWay.rhtm l页中,为整个页面进行布局。然后从“工具箱/标准”选项卡中拖放17个ImageButton控件,设置各个控件的ImageUrl属性值,用于显示在线支付方式。最后在Click事件下跳转到银行的在线支付页填写支付信息,完成订单支付。基于Rails框架的电子商务网站流程图如图4所示,

4.系统测试

为了验证系统平台的各个功能,系统通过使用Selenium和Selenium on Rails插件进行自动化测试。Selenium的内核,即Selenium Core,是用JavaScript实现的,它可以直接在浏览器里运行,而不需要在另一个进程里运行。因此,采用Selenium编写的脚本可以发出类似于鼠标单击这样的命令,从而模拟客户浏览器和Web应用程序之间,以及管理员浏览器和Web应用程序之间的真实交互[3]。例如,我们可以写一个脚本,模拟客户访问租赁信息管理模块,先在车辆租赁登记模块中填写好内容,然后单击“预定”按钮提交。这时,Selenium可以检查发送是否正确,即通过检查下一个显示页面上是否包括预期的内容,所有的这些动作都是通过Selenium命令实现的。

Selenium on Rails是由Jonas Bengtsson开发的一个插件,它把Selenium集成到Rails框架中。这个插件提供了很多特性来简化Rails中Selenium的使用。

5.结束语

随着Internet的发展和普及,网上购物这一新型的购物方式已逐渐被人们所接受,并迅速改变甚至取代了传统的购物观念。而在线交易作为新的商业运营模式也被越来越多的企业所运用。本文所设计的基于Rails框架的电子商务网,充分利用了Rails框架的优点,从整体上降低了企业成本,加快企业对市场的响应速度,从而大大提高了企业的服务质量和竞争力。

[1] 刘志军,黄志明.基于Ruby on Rails的Web应用研究[J].电脑知识与技术,2009,18:4770~4771.

[2] Anon.Ruby on Rails[J].Database and Network Journal,2005,35(6):6-7.

[3] Geer,David.Will software developers ride ruby on rails to success?[J].2006,39(2):18-20.

[4] 柳靖,曹璐,赵丹.Ruby on Rails快速Web应用开发实战[M].北京:电子工业出版社,2006,8.

[5] 周迅飞,王崑声.基于MVC模式的Rails框架研究[J].计算机仿真,2006,2:270~274..

猜你喜欢

商品信息购物车应用程序
被疫情改变的购物车
删除Win10中自带的应用程序
推购物车购物
备战双十一
谷歌禁止加密货币应用程序
购物车里的“时间线”
清空购物车了吗!
电子商务背景下商品信息检索问题研究
商品信息标准化助力电子商务健康发展
三星电子将开设应用程序下载商店