基于ROR的网络订餐系统的设计与实现(1)
2015-04-27 01:43
导读:计算机应用论文论文,基于ROR的网络订餐系统的设计与实现(1)样式参考,免费教你怎么写,格式要求,科教论文网提供的这篇文章不错:摘 要 本文对最新Web应用开发框架Ruby On Rails的工作原理做了简单介绍,讨论了构
摘 要 本文对最新Web应用开发框架Ruby On Rails的工作原理做了简单介绍,讨论了构建一个基于ROR的Web应用的实现方法和所用到的技术,并基于ROR开发了一个网络订餐系统。 关键词 Rails;MVC;订餐系统;Web1 引言 ROR是Ruby On Rails的英文简称,ROR是指使用 Ruby语言实现的Rails Web开发框架。Ruby是一种功能强大的面向对象的、解释型的脚本语言。Ruby语言具有下面几个特点: 语法简单、纯面向对象语言、提供动态对象能力、使用单继承机制、操作符重载、迭代器和闭包、垃圾回收、错误处理功能、拥有独立于操作系统的线程机制、可移植性高。 Ruby on Rails 是一个使用纯Ruby语言编写的、实现了MVC模型的、易于开发、配置和管理的Web应用程序的框架。Rails的设计思想由一组关键的概念来驱动:低重复(DRY)、约定优于配置、快速Web开发框架、对数据库访问的支持。 将(模型-视图-控制器)MVC模型用于软件设计中可以使应用程序的构造更加清晰。Rails是一个MVC框架。使用Rails开发应用时,每个代码以及应用程序的每个部分都遵循标准的方式。也就是说,是在一个被事先准备好的框架内开始应用程序设计的。Rails应用程序是由模块化的、面向对象的脚本语言Ruby写成的,这些模块之间的相互链接和关系驱动着MVC模型的运行。 ROR这些特点也使它逐步从一个开源和个人的Web开发框架走向主流,在诸多Web开发框架中以其鲜明的特色占据了一席之地。2007年12月6曰,ROR2.0发布,进一步强化了对企业应用的支持。2 系统分析与设计2.1 功能描述 基于ROR在开发应用上的诸多优势,本文使用ROR开发了一个小型的网络订餐系统,根据客户要求,该系统应具备下列主要功能: (1)向注册的客户提供可预订商品的列表和详细信息,供客户选择。这些信息的维护由系统管理员进行。 (2)向客户提供一个订单提交、浏览和处理界面,实现购物车形式的订餐功能。 (3)提供用户资料的管理功能,包括增加、删除和信息修改。 (4)提供用户登录和权限控制功能,将为普通用户和系统管理员提供不同的界面。 (5)提供商品和订单信息的查询功能、统计功能和打印功能。 系统选用数据库作为后台数据库,运行环境为:Windows 2000 Server、Ruby 1.8.4、Rails 1.0、MySQL 5.0。2.2 使用ROR实现订餐系统的技术路线 1)将需求模块化 设计中将以递增式开发这个应用程序,首先使用Rails立即创建具有一些功能的简单应用myMealOrder。 系统中开始只区分两种不同的角色:买方和卖方。买方使用myMealOrder来浏览站点可以出售的商品,选择商品并创建一个订单。卖方使用myMealOrder来管理用于出售商品的列表,并等待处理订单,然后将订单发货。 考虑到用户需要选择多项商品,系统中需要有地方保存用户添加的产品列表的,所以在设计中添加了一个购物车。 2)使用Rails的“支架” 第一个任务是创建Web接口来管理系统中的商品信息---包括创建商品信息,编辑现有商品,查看已有的商品信息,删除不需要的商品。为了实现以上功能,在数据库中应当建立几张表,使用Rails “支架”来自动生成最初的代码,这也是Rails具有敏捷性开发效率的一个原因。 Rails“支架”是为管理一个“模型”而自动创建的一个框架。当运行“生成器”时,告诉它需要“支架”来生成一个特殊的“模型”(由“支架”创建的),并且需要通过给定的“控制器”(也是由“支架”创建的)来访问它。在Rails中,“模型”被自动地映射到使用“模型”的类的名字的复数形式的数据库表。在应用程序中,根据需要要求有一个名为good的“模型”,所以Rails将它与叫goods的表关联起来。 Rails是如何找到这个表的呢?在config/database.yml中设置development条目时,就已经告诉Rails在哪儿找数据库的表了。当启动应用程序时,“模型”检查数据库内的表,处理它要得到的列,然后创建数据库表和Ruby对象之间的映射。通过“支架”表单“生成器”可以向“模型”要求有关表的字段信息,然后就使用它找到的字段来创建一个合适的html表单。 3)使用Rails的“控制器” “控制器”处理来自浏览器的“请求”,一个应用程序可以有多个“控制器”。对于本次设计的myMealOrder应用程序来说,最终会有四个“控制器”,一个用于处理商品资料,一个用于处理定单信息,一个用于用户资料,一个用于登录管理。 4)在生成的源码基础上根据需要修改代码 scaffold工具所生成的Rails“支架”使用Ruby代码来组装应用程序目录树。这个目录树表达了一个完整的应用程序构架—它的内部已经放置了Ruby代码;这些都是源代码,而不是简单地对一些标准库的调用。这意味着可以修改“支架”内产生的代码,“支架”是作为一个应用程序的起点,而不是应用程序的终点。开发者也可以对“支架”进行修改,开发者依赖于“支架”生成器来产生创建,更新,删除的功能。然后在保留这个“动作”时可以替换由生成器生成的行为。有时候当需要一个快速接口时,并且对界面要求不高,“支架”就足够用了。 5)使用Rails的模型继承 “模型”层是代码与数据库之间的守护者,应用程序访问数据库时没做任何事,或者将数据存回到数据库时也没有通过“模型”。那么就把所有的确认工作放在模型里;不管数据的流向如何都不会有问题。如果在写到数据库之前,“模型”检查它,就可以阻止损坏的数据到数据库中。“模型”类的源代码如下:(在app/models/good.rb内)class Good