• Ruby on Rails


        Ruby on Rails, 也称 RoR 或简称 Rails, 是一个使用Ruby语言写的开源网络应用 框架,它是严格按照MVC结构开发的。它努力使自身保持简单,来使实际的应用开发时的代码更少,使用最少的配置。

    Rails的设计原则包括“不要重复自己”(Don't Repeat Yourself)和“成规优于自订”(Convention Over Configuration)

    历史
    于2004年7月,Rails 的创始人 David Heinemeier Hansson 从 37signals 公司的项目管理工具 Basecamp 里面分离出 Ruby on Rails,并且以开源方式发布。 Rails在发布以后的短短的时间内就迅速获得很多开发人员欢迎,David 认为这归功于Rails设计为 opinionated software。Rails 当中有很多规矩从一开始就按照David的意见制定好了,所以在Rails上开发应用程序时,开发人员可以专注于应用程序自身的设计,省却那些花在了解及配置基础框架上面的时间。这也正是Rails很重要的精神“惯例优于配置”(Convention over Configuration),开发人员遵照Rails本身的惯例便可以省却配置组态档的时间;此外,Rails虽然强调惯例的重要及便利性,但针对不同的需求,Rails也提供修改的空间让开发人员可以进行自订的组态。


    Rails的 MVC 架构
    Ruby on Rails的模型-视图-控制器架构由以下各部分组成:
    1 模型
    模型包含着应用的状态,状态可能是临时的也可能是长久性保存在数据库中的。需要注意的是模型不仅包含数据,而且包含数据代表的逻辑。在 Rails 中,模型通常是由一些代表关系数据库中RDBMS表的类组成的。
    在RoR中,模型类是通过Active Record模式进行处理的。一般来说,程序员要做的是继承ActiveRecord 类,同时程序会自动计算出要使用哪个RDBMS表,这个表有哪些列。表与表之间的关系通过简单的命令来指明。
    2 控制器
    控制器将用户界面和数据模型关联起来,并充当协调运作的角色。它接收各种用户操作,更新数据模型,并用合适的view展示结果给用户。象他的名字一样,可以说应用的主要控制中心就是各个控制器。
    3 视图
    View 负责根据 Model 中的数据显示用户界面。作为 web 应用,Rails 里的View通常是生成整个或者部分网页。当然可以是XML或者甚至是JavaScript代码。表现为使用内嵌Ruby的 HTML/XML/JavaScript 模板,

    Rails 的组成模块
    察看系统里面安装的gem包,可以发现如下的 Rails相关的Gems。
    actionmailer (1.3.2)
    Service layer for easy email delivery and testing.
    actionpack (1.13.2)
    Web-flow and rendering framework putting the VC in MVC.
    actionwebservice (1.2.2)
    Web service support for Action Pack.
    activerecord (1.15.2)
    Implements the ActiveRecord pattern for ORM.
    activesupport (1.4.1)
    Support and utility classes used by the Rails framework.
    rails (1.2.2)
    Web-application framework with template engine, control-flow layer,
    and ORM.

    模型:Active Record
    ActiveRecord实现了Rails的对象关系映射。


    控制器和视图:ActionPack
    ActionController 是Rails中的控制器,提供各种方法供用户操作使用。

    ActionView 是Rails中的视图,负责展现用户界面。


    常用实用工具:ActiveSupport
    ActiveSupport包提供一些工具和支持代码。


    处理邮件:ActionMailer
    ActionMailer 用来发送和接收 email。


    Web服务:ActionWebService
    ActionWebService 来提供 SOAP 和 XML-RPC 支持。需要注意的是,Rails 趋向使用更加简单明了的 REST 方式 web 服务而不再提倡 SOAP 格式的web服务。ActionWebServices 在未来的版本里面会逐步淡出。


    Rails中的AJAX
    一个称为 AJAX的独立的技术,可以通过浏览器使用JavaScript 和 XML来处理查询,而将Web服务器作为后台来处理,这样无须载入额外的网页。这个技术已经和Ruby on Rails结合在了一起成为了一个新的系统叫做“Ajax on Rails”。Rails 提供一些助手工具来更方便地实现AJAX应用。 Rails提供了一些Helper,可以在服务器一端用纯 Ruby 语言生成给浏览器用的 JavaScript 代码,从而让 Rails 的开发者不需掌握 JavaScript 就可以简单方便的开发出 AJAX 的应用。


    Rails和Web服务
    稍早的版本的Rails中提供了ActionWebService作为开发XML-RPC和SOAP的web服务的基础。但是最近的Rails 1.2 更加倾向于是用REST方式的web服务,而ActionWebService即将在Rails 2.0中作为plugin 而不再是rails核心的一部分。


    Web服务器支持
    对于开发和测试来说,一个很轻量的 WEBrick web 服务器已经被包含在了 Ruby 中,常被用来作为应用服务器。而对于生产应用,常推荐使用带FastCGI 的Apache 或者 Lighttpd,但任何支持CGI或者FastCGI都可以使用。在Apache上,mod_ruby也可以考虑用来提高性能。


    数据库支持
    使用Rails的架构开发网络应用一般都使用数据库,所以推荐使用一个RDBMS系统来进行数据存储,若不能运行一个RDBMS服务器,Rails也支持SQLite库。很多RDBMS系统都支持,包括MySQL、PostgreSQL、SQLite、DB2、Oracle和SQL Server。


    系统要求
    Ruby 语言
    Web服务器,如Apache, lighttpd等。
    Fast CGI,或者Mongrel为了提高效率
    数据库和驱动程序 .
    点击次数   官方主页【官方主页】   下载地址【下载地址】

    网友留言/评论

    我要留言/评论

    相关开源项目

    lighttpd:    Ruby on Rails的首选Web服务器。

    lighttpd(发音为lighty)是一套开放源代码的网页服务器,以BSD许可证释出。相较于其他的网页服务器,lighttpd仅需少量的内存及CPU资源即可达到同样的效能。

    提供 FastCGI 及 SCGI 的负载平衡
    支援 chroot
    支援 select()/poll() 及更有效率的 kqueue/epoll 连线状态判断
    支援条件重写(Conditional rewrites)
    支援SSL连线
    透过LDAP server认证
    rrdtool状态输出
    Rule-based downloading
    Server-side includes support
    Virtual hosting
    Modules support
    Cache Meta Language
    Minimal WebDAV support
    Servlet (AJP) support(1.5.x 版后).
    Mongrel:    Mongrel相比Rails自带的纯Ruby服务器Webrick速度快很多并支持并发访问,有望称为Ruby的Tomact。

    Mongrel是一种快速的针对Ruby的Http 服务器,专门为部署发布rails应用而产生的。
    可以替代mod_ruby/fastcgi,可以用于生产部属环境。
    支持集群,扩展性强。
    有各种丰富插件和功能扩展。
    它是纯Ruby写就的Http 服务器,同时支持多种框架(Ruby On Rails, Camping,Og+Nitro, Iowa)。.
    mod_ruby:    Apache内嵌Ruby 解释器模块

    mod_ruby 使Apache内嵌Ruby 解释器, 使Ruby CGI 脚本可以原生执行并且执行得更快 。
    可以用 mod_ruby扩展Apache .
    mod_ruby 提供了ruby接口的Apache API .