`
sky3366
  • 浏览: 6332 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多
使用 Ruby on Rails 快速开发 Web 应用程序 基于 Ruby 的框架用于快速开发,使用的是模型-视图-控制器模式 David Mertz, Ph.D. (mertz@gnosis.cx), 开发人员, Gnosis Software 简介: 虽然还是测试版本,但 Ruby on Rails 已经成为进行 Web 应用程序开发的一个新途径。Rails 的成功之处在于能够自动化大部分常见类型的 Web 应用程序的创建,而且在您希望添加定制或者有特殊要求时,并不会受到限制。不仅如此,同那些只能完成 Web 应用程序单方面需求的自由软件(Free Software)库相比,Rails 包含了非常完整的一套工具。 标记本文! 发布日期: 2005 年 7 月 04 日 级别: 初级 访问情况 4352 次浏览 建议: 0 (添加评论) 平均分 (共 7 个评分 ) . Ruby on Rails 正在令整个 Web 开发领域受到震憾。让我们首先了解底层的技术: •Ruby 是一门免费的、简单的、直观的、可扩展的、可移植的、解释的脚本语言,用于快速而简单的面向对象编程。类似于 Perl,它支持 处理文本文件和执行系统管理任务的很多特性。 •Rails 是用 Ruby 编写的一款完整的、开放源代码的 Web 框架,目的是使用更简单而且更少的代码编写实际使用的应用程序。 作为一个完整的框架,这意味着 Rails 中的所有的层都是为协同工作而构造的,所以您不必自己再重复,可以完全只使用一门单一的语言。 在 Rails 中,所有内容(从模板到控制流再到业务逻辑)都是用 Ruby 编写的。Rails 支持基于配置文件和注释的反射(reflection)和运行时扩展。 本文详细介绍了 Rails 的组成部分,并介绍了它的工作原理。 Rails 介绍 关于 Rails,首先需要理解的是它的模型/视图/控制器(model/view/controller,MVC)架构。虽然这种技术不是 Rails 所特有的 —— 甚至不是 Web 应用程序所特有的(相对于其他程序),但是 Rails 具有非常清晰而专一的 MVC 思维方式。如果您并不使用 MVC 方法,那么 Rails 的用处将大为降低(与遵循其模式的情况相比)。 模型 Rails 应用程序的模型部分主要是它所使用的底层数据库。实际上,在很多情形中 Rails 应用程序正是以一种受管理的方式对关系型数据库管理 系统(RDBMS)中的数据执行操作的一个途径。 ActiveRecord 类是 Rails 的一个核心组成部分,它将关系型表映射为 Ruby 对象,使其成为控制器可以操作并能在视图 中显示的数据。Rails 应用程序特别倾向于使用广为应用的 MySQL 数据库,不过也有与很多其他 RDBMS 的绑定,比如 IBM? DB2?。 如果您愿意,您可以添加 Ruby 代码来在应用程序模型中执行额外的验证,加强数据关联,或者触发其他操作。应用程序的 app/models/ 目录中的 Ruby 文件能够调用 ActiveRecord 的多种验证方法。不过,您也可以将模型代码留作一个存根,而只是依赖保存数据 的 RDBMS 的约束。例如,我在这个示例中所开发的应用程序只包含这个骨架模型代码(至少在开始时是): 清单 1. 骨架模型 app/models/contact.rb class Contact Rails application started on http://0.0.0.0:3000 [2005-03-21 17:57:38] INFO WEBrick 1.3.1 [2005-03-21 17:57:38] INFO ruby 1.8.2 (2004-12-25) [powerpc-darwin7.8.0] 创建一些内容 要在 WEBrick 端口上看到一个欢迎页面,先前的步骤就足够了。例如,在我的本地系统中,现在可以访问 http://gnosis-powerbook.local:3000/。不过,为了操作定制数据库,需要 生成稍微多一些代码。可以使用脚本 generate 来完成此任务, 这个脚本创建在 AddressBook/ 应用程序目录中: 清单 6. 支架模型和控制器代码的生成 [~/Sites/AddressBook]$ ruby script/generate model contact exists app/models/ exists test/unit/ exists test/fixtures/ create app/models/contact.rb create test/unit/contact_test.rb create test/fixtures/contacts.yml [~/Sites/AddressBook]$ ruby script/generate controller contact exists app/controllers/ exists app/helpers/ create app/views/contact exists test/functional/ create app/controllers/contact_controller.rb create test/functional/contact_controller_test.rb create app/helpers/contact_helper.rb 注意,在相应的表名中,这里应该使用单数的 contact,而不是复数的 contacts。 现在需要编辑一个或多个生成的文件(只需稍加编辑)来让控制器去使用支架: 清单 7. 告知控制器去使用支架 [~/Sites/AddressBook]$ cat app/controllers/contact_controller.rb class ContactController 'list' else render_action 'new' end end 如前所述,控制器的主要任务是将数据导入到变量之中。对象 Contact 是模型所提供的 ActiveRecord对象-关系映射。变量 @contacts 或者 @contact 是它们的适当方法中所给出的数据。 通过 URL 可以访问那些方法本身,比如 http://rails.server/contacts/show/2 (这一个方法显示出 id 为“2”的联系人)。 此示例中的控制器最终连接到了视图,即 RHTML 文件,它们使用的是控制器导入到变量中的数据值。例如,这里是 list视图的一部分: 清单 11. 列出视图 app/views/contacts/list.rhtml [...] 'show', :id => contact.id %> 'edit', :id => contact.id %> 'destroy', :id => contact.id %> [...] 方法 ContactsController.list 导入变量 @contacts,RHTML 中的流控制标签从数组中 取出单个的记录。 -------------------------------------------------------------------------------- 回页首 修改模型 初始的模型只包含联系人的名字。不幸的是,本文中我已经没有余地扩展这个模型以使其包含实际的联系人数据,比如电话号码、地址、电子邮件等等。通常,那些数据 应该存放在一张子表中,子表的外部关键字关联到表 contacts。Rails 模型会使用类似这样的定制代码来指明关联: 清单 12. 定制代码 app\models\phone.rb class Phone Editing contact 'update' %>

Name

Known Since
false %>

'show', :id => @contact.id %> | 'list' %> 那么您手工修改的应用程序看起来如何了呢?与默认的区别不太大,不过在图 3 和 4 中可以看到修改已经生效了: 图 3. 列出联系人,修改后 图 4. 编辑联系人,修改后 -------------------------------------------------------------------------------- 回页首 结束语 Rails 为您提供了开发灵活的 Web 应用程序的一种极其快速的途径;本篇介绍只是肤浅地涉及了如何使用 Rails。完整的框架包含很多实用的类和方法, 能够完成基于 Web 的应用程序使用最多的操作。 Rails 的最大价值在于它孕育了一个成体系的“Rails 思维方式”,因为您所需要的所有支持代码令它变得完整。相对于只是给出要使用的原始材料的 其他工具包和框架而言,这是一个巨大的优势。Rails 开发为您提供了将半成形(half-formed)的想法实现为功能完全的 Web 应用程序的一条坦途。 参考资料 • 您可以参阅本文在 developerWorks 全球站点上的 英文原文。 • “Deploy an application with Cerise Web server” (developerWorks,2005 年 2 月)展示了如何使用 Cerise Web 服务器和 Ruby 创建一个 留言本 Web 应用程序。 • 在 Ruby on Rails 的主页开始使用介绍教程、指南以及下载资源和文档。 • 要获得 Ruby on Rails 所支持的数据库列表(包括 IBM DB2),请访问 Database Drivers page。 • 这个 十分钟的视频 实时地展示了某人开发基于 Ruby 的 Web 应用程序。 • Wikipedia 有一个关于 MVC architectural paradigm 的极好条目。 •在 developerWorks Linux 专区 可以找到更多为 Linux 开发人员准备的参考资料。 •通过参与 developerWorks blogs 加入到 developerWorks 社区。 •在 Developer Bookstore Linux 专栏中定购 打折出售的 Linux 书籍。 • 使用可以直接从 developerWorks 下载的 IBM 试用软件 来改革您的下一个 Linux 开发项目。 关于作者 对 David Mertz 来说,整个世界就是一个舞台;他的职业是致力于提供相关的舞台说明。要深入了解他的生活,请访问他的 个人主页。从 2000 年起他就一直在撰写 developerWorks 专栏 Charming Python 和 XML Matters。阅读他的 Text Processing in Python一书。您可以通过 mertz@gnosis.cx 与 David 联系。 . 建议 -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 0 条评论 | 添加评论举报不良信息 -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- . -------------------------------------------------------------------------------- . . 快来添加第一条评论
分享到:
评论

相关推荐

    ruby开发的基本流程.doc

    ### Ruby开发的基本流程 #### 一、Ruby开发环境搭建 Ruby是一种动态的、面向对象的解释型编程语言,因其简洁易读的语法和强大的库支持而在Web开发领域中备受青睐。开发Ruby应用的第一步是搭建合适的开发环境。推荐...

    ruby开发的基本流程《word文档》

    ruby开发的基本流程《word文档》 Ruby开发流程涉及多个关键步骤,从环境搭建到项目部署,下面是一个大致的流程概述: Ruby开发环境搭建:首先,需要在计算机上安装Ruby开发环境。推荐使用macOS或各种发行版本的...

    ruby开发的基本流程(word文档)

    ruby开发的基本流程(word文档) Ruby开发流程涉及多个关键步骤,从环境搭建到项目部署,下面是一个大致的流程概述: Ruby开发环境搭建:首先,需要在计算机上安装Ruby开发环境。推荐使用macOS或各种发行版本的...

    Windows下RDT+Eclipse搭建 ruby开发环境配置

    在Windows环境下,搭建Ruby开发环境是一项基础而重要的工作,它涉及到多个步骤,包括安装必要的软件、配置环境变量以及集成开发工具的设置。本教程将详细讲解如何使用RDT(Ruby Development Tools)与Eclipse来创建...

    Rubymine搭建Ruby开发环境 .pdf

    ### Rubymine搭建Ruby开发环境知识点详解 #### 一、Ruby及RubyMine简介 - **Ruby**:一种简洁、高效且功能强大的面向对象编程语言,以其语法简洁清晰、易于学习而受到开发者的喜爱。 - **RubyMine**:由JetBrains...

    rubyinstaller-devkit-2.5.5-1-x64ruby开发安装包1积分

    使用这个安装包,开发者可以在64位Windows系统上搭建起完整的Ruby开发环境,从而能够充分利用Ruby的强大功能进行软件开发。 总的来说,`rubyinstaller-devkit-2.5.5-1-x64`是Windows用户便捷安装和开发Ruby程序的...

    基于Ruby开发的校园选课系统+源码+开发文档+界面展示+代码解析(毕业设计&课程设计&项目开发)

    基于Ruby开发的校园选课系统+源码+开发文档+界面展示+代码解析,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于Ruby开发的校园选课系统+源码+开发文档+界面...

    ruby-使用ruby开发的跨平台代码编辑器.zip

    使用Ruby开发跨平台代码编辑器可以充分利用其灵活性和高效性,为开发者提供一个功能丰富的工具。本文将深入探讨如何利用Ruby实现这一目标。 首先,让我们了解Ruby语言的核心特性。Ruby强调代码的可读性和简洁性,它...

    ruby开发文档

    本开发文档将深入探讨Ruby的核心概念、语法特性、类与对象、方法、模块和混合、数组、哈希、控制结构、异常处理、文件与目录操作、Gem包管理、测试框架等内容,帮助开发者全面理解和掌握Ruby编程。 1. **核心概念**...

    Eclipse搭建Ruby开发环境.docx

    【Eclipse搭建Ruby开发环境】 在IT开发领域,选择合适的集成开发环境(IDE)对于提升工作效率至关重要。Eclipse是一款广泛使用的开源IDE,主要用于Java开发,但通过插件扩展,它也能支持其他编程语言,如Ruby。本文...

    资源专区-课程设计-编程作业-Ruby开发-高校固定资产管理系统

    在课程设计和编程作业中,学习Ruby开发这样的系统可以帮助学生深入理解面向对象编程的概念,以及如何利用这种语言来解决实际问题。 一、Ruby编程语言基础知识 1. 类与对象:Ruby是完全的面向对象语言,一切皆为...

    Ruby开发包 for Script.NET V2.1.1

    Ruby开发包是Script.NET脚本语言开发平台的Ruby插件,必须先安装Script.NET平台V2.1.1版本,然后再安装此开发包。 Script.NET平台下载地址:http://download.csdn.net/source/1034307 ... Script.NET是蓝蚂蚁工作室开发...

    banksimplistic, 利用 ruby 开发 CQRS 事件源和 DDD.zip

    banksimplistic, 利用 ruby 开发 CQRS 事件源和 DDD BankSimplisticBankSimplistic是一个沙箱,用于探索命令查询职责隔离( CQRS ) 。事件来源和域驱动的设计( DDD ) ( 带有 ruby ) 。系统基于 nijhof Fohjin的标记 ...

    Ruby - Ruby 开发 - 常用知识点

    Ruby - Ruby 开发 - 常用知识点 backtracking、bit_manipulation、ciphers、conversions、data_structures、discrete_mathematics、dynamic_programming、electronics、maths

    Rugged 是一个 Git 的 Ruby 开发包,使用 libgit2 API

    Rugged 是一个 Git 的 Ruby 开发包,使用 libgit2 API。Rugged 是一个用于在 Ruby 中访问 libgit2 的库。它为您提供速度和 libgit2 的可移植性与 Ruby 语言的美感。

    Ruby及开发工具(一个script的程序语言)

    此外,持续集成工具Jenkins、Git版本控制系统以及Docker容器技术也是Ruby开发中常用的工具,它们帮助团队协作和项目部署变得更加高效。 总之,Ruby以其面向对象的特性、简洁的语法和强大的工具集,为开发者提供了一...

    GitLab 是 Ruby 开发的自托管的 Git 项目仓库,可通过Web界面进行访问公开的或者私人项目

    GitLab 是 Ruby 开发的自托管的 Git 项目仓库,可通过Web界面进行访问公开的或者私人项目。

Global site tag (gtag.js) - Google Analytics