Skip to content

Ruby on Rails - 示例

在本章中,我们将逐步创建一个简单的在线图书馆系统。这个应用程序将管理书籍及其所属的主题,演示核心的 Rails 概念。

我们的应用程序将使用两个主要的数据模型(Data Model):

  • Book:代表一本具体的书籍,包含标题(title)、价格(price)、描述(description)和主题(subject)等属性。
  • Subject:代表书籍的分类,例如“物理”(‘Physics’)或“历史”(‘History’)。

开发 Rails 应用程序的典型工作流程包括以下步骤:

  • 初始化应用程序:使用 rails new 命令生成应用程序的骨架(skeleton)。
  • 数据库设置:创建数据库(例如 PostgreSQL、MySQL,或使用默认的 SQLite)并配置 config/database.yml 文件。
  • 模型创建:定义 Active Record 模型(app/models/)来表示应用程序的数据及其关系。
  • 数据库迁移:生成并运行数据库迁移(Migrations)(db/migrate/)来创建或修改数据库模式(schema)(表格、列)。
  • 路由配置:在 config/routes.rb 中定义路由(routes),将 URL 映射到控制器动作(controller actions)。
  • 控制器逻辑:编写控制器动作(app/controllers/)来处理请求、与模型交互,并为视图(views)准备数据。
  • 视图模板:使用 ERB(或其它模板引擎)创建视图模板(app/views/)来显示数据和提供用户界面。
  • 测试:编写测试(单元测试unit, 集成测试integration, 系统测试system)以确保应用程序按预期工作。

现在,让我们开始构建图书馆应用程序。

Rails 提供了命令行生成器(command-line generators)来自动化许多常见的开发任务。我们将使用 rails new 命令为图书馆系统创建基本结构。

  1. 打开您的终端(terminal)或命令提示符(command prompt)。
  2. 导航到您想要创建应用程序的目录。
  3. 运行以下命令来创建一个名为 library_system 的新 Rails 应用程序:
$ rails new library_system

这个命令会创建一个名为 library_system 的目录,其中包含一个完整的 Rails 应用程序结构。有关此结构的详细信息,请参阅“Rails 目录结构”章节。

library_system/app/ 目录中用于开发的关键子目录包括:

  • controllers/:包含处理 Web 请求的控制器类(Controller classes)。
  • models/:存放与数据库交互的 Active Record 模型类。
  • views/:存储用于渲染 HTML 的视图模板(View templates)。
  • helpers/:包含用于辅助视图和控制器的助手模块(Helper modules)。
  • assets/:管理静态资源,如样式表(stylesheets)、JavaScript 文件和图像。
  • jobs/:用于处理后台作业(background jobs),使用 Active Job。
  • mailers/:用于处理邮件发送,使用 Action Mailer。

Rails 应用程序可以在各种 Web 服务器上运行。在开发环境中,Rails 自带 Puma Web 服务器,它很容易启动。

要启动开发服务器:

  1. 进入您的应用程序目录:cd library_system
  2. 运行 Rails 服务器命令:bin/rails server(或简写 rails s)。
$ cd library_system
$ bin/rails server

您应该会看到类似以下的输出,表明 Puma 已经启动:

=> Booting Puma
=> Rails 7.x.y application starting in development
=> Run `bin/rails server --help` for more startup options
Puma starting in single mode...
* Puma version: 6.x.y (ruby 3.x.y-p0) ("The Eagle of Durango")
* Min threads: 5
* Max threads: 5
* Environment: development
* PID: 12345
* Listening on http://127.0.0.1:3000
* Listening on http://[::1]:3000
Use Ctrl-C to stop

这会启动 Puma 服务器,通常在端口 3000 上。

现在,打开 Web 浏览器并导航到 http://localhost:3000(或 http://127.0.0.1:3000)。如果一切设置正确,您应该会看到默认的 Rails 欢迎页面。此页面的外观在不同 Rails 版本之间略有差异,但它通常表明您的应用程序正在运行。

下一步是为我们的应用程序设置数据库,并配置 Rails 连接到它。然后我们将定义模型(models),并使用数据库迁移(migrations)创建数据库模式(schema)。