Ruby on Rails 教程
⚡ 智能摘要
Ruby on Rails 教程介绍了用 Ruby 编写的开源 Web 框架,该框架为 Airbnb、GitHub 和 Shopify 等公司提供支持。本教程涵盖了安装过程。 WindowsMac 和 Linux,Rails 生成器、路由、视图、ActiveRecord、验证和调试。
什么是红宝石?
红宝石 Ruby 是一种高级的、解释型的、面向对象的编程语言。它是一种充满活力的开源语言,拥有庞大的社区支持。Ruby 的设计理念是简洁高效,鼓励编写以人为本、计算机为辅的软件代码。Ruby 由松本幸弘于 1995 年在日本创建。
什么是 Rails?
轨 Rails 是一个用 Ruby 编写的 Web 应用程序开发框架。它最初是作为 Basecamp 应用程序的基础而创建的,并于 2004 年作为开源软件发布。Rails 提供了许多内置的标准特性和功能,使其成为 MVP 原型设计的理想选择。ping 以及快速的产品开发。
Rails由David Heinemeier Hansson(简称DHH)创建,是构建Web应用程序最具影响力和最流行的工具之一,被Airbnb、GitHub和Shopify等知名网站广泛使用。
为什么选择 Rails?
在安装工具链之前,了解 Rails 为何仍然是船舶开发的热门选择很有帮助。ping 快速运行Web应用程序。
- Rails 被打包成 Ruby gem,你可以用它构建各种各样的应用程序。
- 它允许您构建常规 Web 应用程序、电子商务网站、内容管理系统等等。
- Rails 是一个全栈框架,它包含了使用模型-视图-控制器 (MVC) 模式创建数据库驱动的 Web 应用程序所需的一切。
- 所有层都经过精心设计,可以无缝协作,因此 Rails 项目通常比其他框架中的同等项目需要更少的代码行数。
如何在 Windows
安装过程取决于您的操作系统。接下来的章节将介绍如何在操作系统上安装 Ruby。 Windows,Mac和 Linux.
步骤1) 下载 Rubyinstaller。
在你的 Windows 计算机通过 Ruby 安装程序安装,该安装程序可在以下位置获取: https://rubyinstaller.org/.
下载完成后,运行安装程序。
步骤2) 点击下载的安装程序。
Double-点击下载的安装程序文件,例如 rubyinstaller-2.4.1-2-x64.exe.
步骤3) 接受许可协议。
选择“我接受许可”单选按钮,然后单击“下一步”按钮。您应该会看到如下屏幕。
步骤4) 勾选前两个复选框。
选中前两个复选框可以使运行 Ruby 脚本更容易。
点击“安装”按钮开始安装。安装完成后,您应该会看到如下所示的屏幕。
步骤5) 单击“完成”。
请勿取消勾选安装 MSYS2 的选项。单击“完成”按钮以完成安装。此时将打开一个命令提示符窗口,如下图所示。
步骤6) 安装 MSYS2。
此步骤会安装 MSYS2,这是一个构建平台,它具有一个包管理器,可以方便地在系统上安装软件包。 Windows.
按 Enter 键安装所有组件,因为它们都是构建流畅的 Ruby on Rails 开发环境所必需的。 Windows.
安装 Rails
你应该已经按照上一节的步骤安装了 Ruby。接下来,安装 Rails。你可以使用一个软件包来安装 Rails。 Rails 安装程序但是,该软件包通常不会提供每个必需依赖项的最新版本。
如果您已经安装了最新版本的 Ruby 以及基本的 RubyGems 和扩展,只需在命令提示符下运行以下命令即可在您的系统上安装 Rails: gem install rails.
您还需要安装 Node.js 如果你还没有安装,因为 Rails 依赖的一些库需要它。 Java脚本运行时要正常工作。获取节点 https://nodejs.org.
一种更常见和更受青睐的方法 Windows 是使用 Windows Linux 子系统。它提供了一个 GNU/Linux 环境,其中包含命令行工具、实用程序和常用应用程序。 Windows.
在 Mac 上安装 Ruby
您的 Mac 电脑已预装 Ruby。但是,预装版本通常已过时,因此您应该安装一个更新的版本。
最简单的方法是使用包管理器,例如 家酿您可能需要先在终端中运行以下命令来安装 Homebrew。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
这将显示一条警告并提示您输入密码。请输入您的 Mac 密码(输入时字符不会显示),完成后按 Enter 键。然后运行此 Homebrew 命令在您的 Mac 上安装 Ruby。
brew install ruby
然后运行以下命令:
echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile
这将把新安装的 Ruby 版本设置为系统上的默认 Ruby 版本,而不是预装的 Ruby 版本。
要确认安装是否成功,请在终端中运行以下命令:
ruby --version
此命令会打印出您已安装的 Ruby 版本号。输出结果类似于:
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
安装 Ruby Ubuntu (Linux)的
在……上安装 Ruby 的最简单方法 Ubuntu 是通过 apt 包管理器安装的。在终端中运行以下命令,即可安装最新版本的 Ruby。 Ubuntu 仓库。
- sudo apt update 这会更新默认设置。 Ubuntu 仓库。
- sudo apt install ruby-full – 此操作会下载并安装最新版本的 Ruby。
要确认安装,请运行 ruby-版本这段代码会打印出你已安装的 Ruby 版本。
安装 Rails Ubuntu (Linux)的
请按照以下步骤在您的 Linux 机器上安装 Rails。
步骤1) 通过运行以下命令更新您的 Gem 管理器 gem 更新 -system 在终端或命令提示符中。
步骤2) 运行 宝石安装导轨 在您的计算机上安装最新版本的 Rails。
步骤3) 安装 bundler gem,以便轻松管理 Rails 应用程序的 gem 依赖项。运行 宝石安装捆绑器.
铁路的两大原则
Rails遵循基本的软件设计原则,并鼓励你也使用这些原则。
最常见的两种是:
- 不要重复自己(干) ——这样就能编写出简洁、一致且易于维护的代码。
- 约定优于配置 Rails 预配置了合理的默认设置,足以满足大多数常见使用场景。这不仅加快了应用程序开发速度,也减少了需要维护的代码量。
Rails – 项目文件结构
确保系统已安装 Rails,然后创建一个 Rails 应用程序。接下来的章节将通过构建一个待办事项列表应用程序,逐步讲解 Ruby on Rails 的示例。在终端中运行以下命令来创建应用程序:
rails new todo_app
此命令创建一个名为 待办事项应用 当前目录包含 Rails Web 应用程序的基本文件夹结构,如下所示。
以下是项目生成的主要目录:
应用 – 将 UI/布局(视图和助手)、控制器(控制器文件)和模型(业务/应用程序逻辑)的子目录分组。
应用程序/控制器 – 存储 Rails 用于处理来自客户端的请求的控制器文件。
应用程序/资产 – 包含应用程序前端所需的静态文件,按类型分组: JavaScript 文件、图像和样式表。
应用程序/助手 – 包含辅助函数,可使您的应用程序模型、视图和控制器逻辑保持专注、简洁和清晰。
应用/模型 – 包含用于对应用程序数据库进行建模的文件。这些模型类使数据库操作变得非常容易。
应用程序/浏览量 – 存放应用程序用户与之交互的模板/布局文件。这些模板将 HTML 与数据库中的数据相结合。
箱子 – 包含启动应用程序的 Rails 脚本。它还可以包含用于设置和升级应用程序的其他脚本。
配置 – 存放配置文件,例如 数据库.yml、环境.rb、路线.rb等等,你的应用程序运行所需的一切。
db – 包含用于管理应用程序数据库的文件和脚本。
LIB – 包含应用程序的扩展模块。
日志 – 包含日志文件,例如 server.log、development.log、test.log 和 production.log用于调试或监控您的应用程序。
国家 – 包含静态文件和已编译的资源,例如 HTML 文件, Java脚本文件、图像和样式表。
实验 – 包含您编写的用于测试应用程序功能的测试文件。
TMP – 包含临时文件,例如缓存文件和 pid 文件。
供应商 – 包含第三方库。
文件 – 指定运行 Web 应用程序所需的基本 gem 要求。您可以将 gem 分组到开发、测试或生产环境中,Rails 会知道何时引入哪个 gem。
Gemfile.lock 与明确列出应用程序中所需 gem 的 Gemfile 不同,Gemfile.lock 还包含 Gemfile 中列出的 gem 所依赖的其他 gem。这些 gem 会自动安装以满足依赖关系。
自述文件 – 使用此文件分享有关您的应用程序的重要细节,例如应用程序的功能以及如何安装和运行它。
文件 – 包含各种 rake 任务定义,可帮助自动化应用程序的日常管理任务。
config.ru – 一个 Rack 配置文件,它为 Web 服务器提供接口以启动您的应用程序。
切换到该目录 待办事项应用 目录 Rails 生成并运行 rails服务器 启动应用程序。输入 本地主机:3000 在浏览器地址栏中输入。如果一切顺利,您应该会看到以下屏幕。
这是应用程序的默认主页。您将在本 Ruby on Rails 教程的后续章节中更改它。您可以按 Ctrl+C 停止服务器。 按Ctrl + C.
Rails – 生成命令
Rails 的 generate 命令使用模板在应用程序中创建许多有用的元素。这些生成器可以节省大量时间。
它们会编写必要的样板代码,以确保您的 Web 应用程序正常运行。运行 rails 生成 在命令提示符或终端中单独输入即可查看可用生成器的列表,如下所示。
你也可以跑 rails 生成 要查看命令的详细说明,其中列出了便捷的选项和使用示例。下图显示了运行该命令的输出结果。 rails 生成控制器.
使用 `rails generate scaffold` 命令自动创建待办事项列表应用程序的模型、视图和控制器。在终端中运行以下命令(确保您仍在 `rails` 目录中)。 待办事项应用 目录):
rails generate scaffold todo_list title:string description:text
这将为待办事项列表表创建一个完整的 CRUD(创建、读取、更新、删除)Web 界面。
另一个有用的命令是 铁轨损毁它会逆转任何情况。 rails 生成 一样。
Rails – 路由
Rails路由系统,也称为Rails路由器,负责处理所有传入Web应用程序的请求。它会检查…… URL 对每个请求进行映射,并将其映射到负责处理该请求的控制器操作,使用路由文件中指定的语法(配置/路线.rb).
路由文件控制着一切 URL 这是您 Web 应用程序的一个方面。Rails 使用基于 REST 架构风格的 RESTful 设计,它提供了一个映射。ping HTTP动词和请求之间的区别 URLs 到控制器操作。
路线文件是在您运行时生成的 新的铁路 之前。继续构建待办事项应用程序,运行以下命令:
rails db:migrate
请确保您仍在应用程序的根目录(即 待办事项应用 目录)。
重新启动服务器 rails服务器。 类型 http://localhost:3000/todo_lists/ 在浏览器中打开并按回车键。你应该会看到类似下面的网页。
这是由 scaffold 命令生成的待办事项列表视图,它由 TodoListsController 控制。 指数 行动。
点击页面上的“新建待办事项列表”即可添加待办事项列表。您应该会看到如下屏幕。
请注意 URL 现在 http://localhost:3000/todo_lists/new这是创建新待办事项列表的页面,它由 TodoListsController 控制。 新 方法。
在表单中输入待办事项列表的标题和描述,然后点击“创建待办事项列表”。 URL 应该改为 http://localhost:3000/todo_lists/1, 如下所示。
这是待办事项列表的显示页面,由 TodoListsController 控制。 显示 方法。如果你回到 http://localhost:3000/todo_lists/现在你应该能看到如下所示的屏幕,其中添加了新的待办事项列表。
Rails 能够使用路由定义将每个请求映射到相应的 TodoListsController 操作。 配置/路线.rb.
如果你查看这个文件,你会看到一行字。 资源:待办事项列表这是 Rails 编写 RESTful 路由的默认方式。这一行代码创建了七条路由,全部都是映射路由。ping 发送到 TodoLists 控制器。
按照惯例,每个控制器操作都映射到数据库中的特定 CRUD(创建、读取、更新、删除)操作。
运行 铁路路线 在命令行中输入命令,即可查看应用程序中可用的各种路由。下图显示了运行该命令的输出结果。 铁路路线.
Rails – 视图
视图层是 MVC 架构的组成部分之一,负责为应用程序的每个请求生成 HTML 响应。Rails 默认使用 ERB(嵌入式 Ruby),这是一个功能强大的 Ruby 模板系统。
ERB 通过将纯文本与 Ruby 代码相结合,实现了变量替换和流程控制,使模板的编写和维护变得轻松便捷。ERB 模板使用 .html.erb 延期。
您主要会使用两个标签标记,每个标记都会导致嵌入代码以特定的方式进行处理。
带有等号的标签 <%= %> 表示嵌入的代码是一个表达式,该表达式的结果应该在模板渲染时替换到输出中。
另一个没有等号的标签 <%%> 指示渲染器不要将代码的结果替换或打印到输出中。
Rails 应用程序中的每个控制器在 应用程序/浏览量控制器中的每个操作都有一个对应的 .html.erb 该子目录中的文件。
瞅 应用程序/浏览量 在您正在构建的待办事项应用程序中,您会找到一个名为“Todo”的子目录。 待办事项清单 或 .html.erb 文件名称与操作相对应 待办事项列表 控制器。
Rails – ActiveRecord、Active Record 模式和 ORM
ActiveRecord 是 Ruby 对 Active Record 模式的实现。在该模式中,一个类代表一个数据库表,而该类的一个实例代表该表中的一行数据。
ActiveRecord 通常被称为 ORM(对象关系映射)。ping数据库层(或称数据库管理层)是一种允许您使用最熟悉的语言来管理数据库的技术。它与数据库无关,因此您可以轻松地在不同数据库之间切换——例如, SQLite, MySQL, PostgreSQLSQL Server 或 Oracle — 使用相同的代码和逻辑。
例如,要获取应用程序中包含所有待办事项列表的数组,您无需编写打开连接、运行 SQL SELECT 查询并转换结果的代码。
你只需输入 待办事项列表.全部ActiveRecord 返回一个填充了 TodoList 对象的数组,您可以随意使用。
您只需在以下位置进行配置即可: config / database.ymlActiveRecord 可以处理数据库系统之间的差异。当您从一个数据库切换到另一个数据库时,无需重写代码。
您专注于应用程序逻辑,ActiveRecord 会处理连接数据库的底层细节。它使用命名约定将模型映射到数据库表。
Rails 会将模型类名复数化,以便找到对应的数据库表。因此,对于一个类 待办事项列表ActiveRecord 使用一个名为“ 待办事项清单.
Rails – 迁移
Rails迁移脚本是一种用于演进应用程序数据库的脚本。它用于设置或更改数据库,而无需手动编写SQL语句。
它使用 Ruby 来定义数据库模式的更改,并允许使用版本控制来保持数据库在不同环境之间的同步。
Rails 迁移使用 Ruby 领域特定语言 (DSL)。这充当绝对值。trac允许您根据自身需求使用或更改数据库引擎。
迁移可以与应用程序的任何开发人员共享,也可以回滚以撤销更改。这是一种强大的安全机制,因此您无需担心对数据库造成永久性损坏。
Rails – ActiveRecord 关联
两个 ActiveRecord 模型之间的连接称为关联。关联使得在代码中对相关记录执行操作变得更加容易。关联通常分为四类。
一对一: 一条记录包含另一个模型的唯一实例。一个很好的例子是用户个人资料——一个用户只有一个个人资料。它使用 has_one 关键词。
一对多: 最常见的关联方式——一个模型可以包含零个或多个另一个模型的实例。使用 has_many 关键字来表示这种关联。
多对多: 稍微复杂一些。ActiveRecord 提供了两种处理方式: 具有并属于多个 和 has_many:通过这样,您就可以访问在单独的表中定义的连接模型。
多态一对多: Rails 中更高级的关联。它定义了一个模型,该模型可以通过单个关联属于多个不同的模型。
Rails – ActiveRecord 验证
验证有助于确保您拥有正确的数据,因为使用错误数据是有风险的,可能会给您的企业造成经济损失。
验证还能提供额外的安全保障,防止恶意用户试图将有害数据插入数据库。Rails 在 ActiveRecord 中提供了一套简洁的验证辅助 API,确保数据库干净、安全且无错误。
ActiveRecord 验证在保存到数据库之前对模型对象运行,这使得它们更加可靠,并符合最佳实践。
以下ActiveRecord方法在对模型对象调用时会触发验证: 创建,创建!,保存,保存!,更新,更新!. 爆炸版本(创建!保存!更新!如果记录无效,则引发异常,而非感叹号版本则返回 false。
最常用的 ActiveRecord 验证辅助函数有:
- 确认: 验证两个字段的值是否相同,例如密码和密码确认。它与存在性验证辅助函数一起使用。
- 存在: 检查该字段是否为空。
- 唯一性: 确保字段值唯一,例如用户名。
- 长度: 对字段的字符长度进行限制。
您还可以使用以下方式创建自己的自定义验证: 验证 方法并向其传递自定义验证方法的名称。
检查一下型号的 错误 对象用于查找验证失败的原因。这为您提供了使应用程序更加严格和安全所需的一切,确保只允许有效数据进入数据库。
Rails – ActionController
Rails 控制器是 Web 应用程序的中心。它促进并协调用户、模型和视图之间的通信。
你的控制器类继承自 应用程序控制器其中包含可在所有其他控制器中运行的代码,并且该控制器又继承自 ActionController::Base.
控制器为你的应用程序提供以下内容:
- 它将外部请求路由到内部操作。
- 它可以管理缓存,从而提升应用程序的性能。
- 它管理扩展视图模板功能的辅助方法,并管理用户会话,从而为用户提供流畅的体验。
Rails – 配置
您可以使用 Rails 应用程序初始化器和配置文件来配置初始化器、资源、生成器和中间件等组件。 配置 目录。类似文件 config/application.rb, config/environments/development.rb和 config/environments/test.rb 这里使用了这些设置。您还可以为您的应用程序添加自定义设置。
Rails – 调试
在构建应用程序的过程中,您需要调试代码。Rails 让这一切变得轻松简单。 byebug gem。您可以通过输入关键字来启动调试会话。 byebug 应用程序代码中的任何位置。
这将暂时中止执行。byebug gem 提供了多个命令。其中最常用的命令有:
- 下一个: 移动到下一行代码,跳过ping 当前行调用的所有方法。
- 步: 像 下页但是,它会进入每个被调用的方法。
- 休息: 停止代码执行。
- 继续: 继续执行代码。
还有其他调试工具可用,例如 撬它们的功能大同小异,只是语法略有不同。调试 gem 不应该在生产环境中使用,因为它们会给应用程序带来风险,并给用户造成糟糕的体验。
可以检查生产环境中的日志文件以发现错误并进行相应处理。此外,在构建应用程序时,应遵循测试驱动开发 (TDD) 方法,以确保在部署到生产环境之前一切运行正常。














