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 会为每次测试运行创建一份全新的测试数据库副本。