目录

Ruby/Rails是什么

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 的应用。

一站式研发项目管理平台 PingCode

一站式研发项目管理平台 PingCode

支持敏捷\瀑布、知识库、迭代计划&跟踪、需求、缺陷、测试管理,同时满足非研发团队的流程规划、项目管理和在线办公需要。