ruby是一种面向对象的动态脚本语言,它的语法很灵活,而且提供了丰富的类库。Rails是使用纯ruby编写的框架,它对web开发提供了强有力的支持,如支持数据映射、MVC模式、Web Services、安全等,而且这些功能操作起来要比同类的产品容易的多,如MVC模式就比struts更容易使用。
一、Ruby是什么
1、定义
Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。
2、核心语句
Ruby中的核心语句可以理解为“对”,也就是你需要使用的任何方法。这就是 Ruby语句和我们之前介绍的 Java语句不同之处在于,使用语法结构来帮助你理解整个类型; Ruby也使用语句构建对象之间的交互界面。核心语句通常由一个类、一组属性和一个类数据等部分组成。类包括类(Regulator)、类变量(Restoration)、参数函数(参数),以及值函数等。属性(Regulator)用于将所需的数据连接到对象中,通常是变量;对象类型还可以通过内部属性模型中所提供的数据类型。它们在特定的条件下连接起来,这也决定了你需要使用哪种方法来共享数据。
3、优点
- 语法简单
- 具有普通的面向对象功能(类、方法调用等)
- 具有特殊的面向对象功能(Mix-in、特殊方法等)
- 可重载操作符
- 具有异常处理功能
- 调用带块方法(迭代器)和闭包
- 垃圾回收器
- 动态载入(取决于系统架构)
- 可移植性。它可以运行在大部分的UNIX、DOS和Mac上
二、Rails是什么
1、定义
Rails全称是Ruby on Rails,是一个使用Ruby语言写的开源Web应用框架,它是严格按照MVC结构开发的。它努力使自身保持简单,来使实际的应用开发时的代码更少,使用最少的配置。
Rails框架首次提出是在2004年7月,它的研发者是26岁的丹麦人David Heinemeier Hansson。Rails是一个易于使用的框架,是一个使用Ruby语言写的开源网络应用框架,它是严格按照MVC结构开发的。它努力使自身保持简单,来使实际的应用开发时的代码更少,使用最少的配置。
不同于已有复杂的Web 开发框架,Rails是一个更符合实际需要而且更高效的Web开发框架。Rails结合了PHP体系的优点(快速开发)和Java体系的优点(程序规整),因此,Rails在其提出后不长的时间里就受到了业内广泛的关注。
2、用途
Rails的设计初衷是创建使用关系数据库后端的动态Web站点。它将关键词添加到Ruby编程语言中,从而使Web应用程序更易于配置。此外,它还可以从现有的数据库模式中自动生成完整(如果有些粗略)的Web应用程序。后者既是Ruby的最大优点也是它的致命缺点。Rails 对数据库模式命名惯例做出了假设,如遵循这些假设,只需执行一个命令即可生成一个基础Web站点。但是要完成此操作需要额外的配置,在一些情况下,则是根本无法实现的。您还可能发现Rails 期望的每一个数据库惯例都可以被覆盖,但是需要做的覆盖越多,平台的效率就越低。这就是为什么Rails在使用新数据库开发“绿色领域”应用程序时非常强大的原因。不幸的是,它在处理原有系统时并不是一个很好的解决方案。
要展示Rails在绿色领域应用程序开发中的作用,较好的方法是通过示例。如果您已经安装了Oracle数据库,并可以在其中创建新的数据库和表,那么创建一个完整的Web应用程序只需不到15分钟的时间。在这种情况下,我们将使用Ruby of Rails来构建一个产品目录。
3、原则
- Don’t Repeat Yourself (自己不要重复):建议不要写重复的代码,这是个很糟糕的编程习惯。
- Convention Over Configuration (约定优于配置):Rails使得假设你想要做什么和你打算怎么做,而不是要求您通过无休止的配置文件中指定的每一件小事。
- REST是web应用程序开发中较好的开发模式:组织您的应用程序根据资源标和标准的HTTP,是非常快的开发方式。
三、Ruby on Rails的 MVC 架构
1、模型
模型包含着应用的状态,状态可能是临时的也可能是长久性保存在数据库中的。需要注意的是模型不仅包含数据,而且包含数据代表的逻辑。在 Rails 中,模型通常是由一些代表关系数据库中 RDBMS 表的类组成的。
在 Rails 中,模型类是通过 Active Record 模式进行处理的。一般来说,程序员要做的是继承 ActiveRecord 类,同时程序会自动计算出要使用哪个 RDBMS 表,这个表有哪些列。表与表之间的关系通过简单的命令来指明。
2、视图
View 负责根据 Model 中的数据显示用户界面。作为 web 应用,Rails 里的 View 通常是生成整个或者部分网页。当然可以是 XML 或者甚至是 JavaScript 代码。表现为使用内嵌 Ruby 的 HTML/XML/JavaScript 模板。
3、控制器
控制器将用户界面和数据模型关联起来,并充当协调运作的角色。它接收各种用户操作,更新数据模型,并用合适的 view 展示结果给用户。像他的名字一样,可以说应用的主要控制中心就是各个控制器。
延伸阅读1:Rails 中的 AJAX
AJAX(异步 JavaScript 与 XML)是一种异步传输接口,可以借由浏览器使用 JavaScript 和 XML 或其他数据格式来处理传输请求,而将 Web 服务器作为后台来处理,这样无须加载额外的网页。Rails 内置有 Prototype 包来实现这个技术。Ajax 已经和 Ruby on Rails 结合在了一起成为了一个新的系统叫做“Ajax on Rails”。Rails 提供一些助手工具来更方便地实现 AJAX 应用。 Rails 提供了一些 Helper,可以在服务器一端用纯 Ruby 语言生成给浏览器用的 JavaScript 代码,从而让 Rails 的开发者不需掌握 JavaScript 就可以简单方便的开发出 AJAX 的应用。