Ruby on Rails - 简介

什么是 Ruby?

在开始使用 Rails 之前,让我们先回顾一下 Ruby 的几个要点,它是 Rails 的基础。

Ruby 是 −

  • Smalltalk 的概念优雅,
  • Python 的使用和学习都很方便,
  • Perl 的实用性。

Ruby 是 −

  • 一种高级编程语言。
  • 像 Perl、Python、Tcl/TK 一样进行解释。
  • 像 Smalltalk、Eiffel、Ada、Java 一样面向对象。

为什么是 Ruby?

Ruby 起源于日本,现在在美国和欧洲也越来越受欢迎。以下因素促成了它的流行 −

  • 易于学习
  • 开源(非常宽松的许可证)
  • 丰富的库
  • 非常容易扩展
  • 真正面向对象
  • 编码更少,错误更少
  • 乐于助人的社区

虽然我们有很多理由使用 Ruby,但在实施 Ruby 之前,您可能还需要考虑一些缺点 −

  • 性能问题 − 虽然它可以与 Perl 和 Python 相媲美,但它仍然是一种解释型语言,我们无法将其与 C 或 C++ 等高级编程语言进行比较。

  • 线程模型 − Ruby 不使用本机线程。 Ruby 线程在 VM 中模拟,而不是作为本机 OS 线程运行。

示例 Ruby 代码

以下是用于打印"Hello Ruby"的示例 Ruby 代码

# The Hello Class
class Hello
   
   def initialize( name )
      @name = name.capitalize
   end

   def salute
      puts "Hello #{@name}!"
   end
   
end

# 创建新对象
h = Hello.new("Ruby")

# 输出 "Hello Ruby!"
h.salute

输出 − 这将产生以下结果 −

Hello Ruby!

Embedded Ruby

Ruby 提供了一个名为 ERB(Embedded Ruby)的程序,由 Seki Masatoshi 编写。ERB 允许您将 Ruby 代码放入 HTML 文件中。 ERB 逐字逐句地读取,然后在某个时刻,当它遇到嵌入在文档中的 Ruby 代码时,它开始执行 Ruby 代码。

您只需知道两件事即可准备 ERB 文档 −

  • 如果您希望执行某些 Ruby 代码,请将其括在 <%%> 之间。

  • 如果您希望将代码执行的结果作为输出的一部分打印出来,请将代码括在 <%=%> 之间。

这是一个例子。将代码保存在 erbdemo.rb 文件中。请注意,Ruby 文件的扩展名为 .rb

<% page_title = "Demonstration of ERB" %>
<% salutation = "Dear programmer," %>

<html>

   <head>
      <title><%= page_title %></title>
   </head>
	
   <body>
      <p><%= salutation %></p>
      <p>This is an example of how ERB fills out a template.</p>
   </body>
	
</html>

现在,使用命令行实用程序 erb 运行该程序。

tp> erb erbdemo.rb

这将产生以下结果 −

<html>

   <head>
      <title>Demonstration of ERb</title>
   </head>
	
   <body>
      <p>Dear programmer,</p>
      <p>This is an example  of how ERb fills out a template.</p>
   </body>
	
</html>

什么是 Rails?

  • 一款非常高效的 Web 应用程序框架。

  • 由 David Heinemeier Hansson 用 Ruby 编写。

  • 使用 Rails 开发 Web 应用程序的速度至少比使用典型的 Java 框架快十倍。

  • 一款用于开发数据库支持的 Web 应用程序的开源 Ruby 框架。

  • 使用数据库模式配置您的代码。

  • 无需编译阶段。

全栈框架

  • 包括使用模型-视图-控制器模式创建数据库驱动的 Web 应用程序所需的一切。

  • 作为全栈框架,意味着所有层都构建为无缝协作,并且成本更低代码。

  • 需要的代码行数比其他框架少。

约定优于配置

  • Rails 不使用配置文件,而是采用约定、反射和动态运行时扩展。

  • 您的应用程序代码和正在运行的数据库已经包含了 Rails 需要知道的所有内容!

Rails 的优势

Rails 包含许多可提高您工作效率的功能,以下许多功能都是相互构建的。

元编程

其他框架使用从头开始的大量代码生成,而 Rail 框架使用元编程技术来编写程序。Ruby 是元编程的最佳语言之一,Rails 很好地利用了这一功能。 Rails 也使用代码生成,但更依赖于元编程来完成繁重的工作。

Active Record

Rails 引入了 Active Record 框架,该框架将对象保存到数据库中。Rails 版本的 Active Record 会发现数据库模式中的列,并使用元编程自动将它们附加到域对象。

约定优于配置

大多数 .NET 或 Java 的 Web 开发框架都会强制您编写几页配置代码。如果您遵循建议的命名约定,Rails 就不需要太多配置。

脚手架

您通常会在开发的早期阶段创建临时代码,以帮助快速启动应用程序并查看主要组件如何协同工作。Rails 会自动创建您需要的大部分脚手架。

内置测试

Rails 创建简单的自动化测试,然后您可以对其进行扩展。 Rails 还提供支持代码(称为 harnesses 和 fixtures),使测试用例的编写和运行更加容易。然后,Ruby 可以使用 rake 实用程序执行所有自动化测试。

三种环境

Rails 为您提供了三种默认环境:开发、测试和生产。每种环境的行为略有不同,可让您的整个软件开发周期更加轻松。例如,Rails 会为每次测试运行创建一份全新的测试数据库副本。