本教程适用于以下操作系统版本

  • Ubuntu 24.04(Noble Numbat)
  • Ubuntu 22.04(Jammy Jellyfish)
  • Ubuntu 20.04(Focal Fossa)
  • Ubuntu 18.04(Bionic Beaver)
  • Ubuntu 16.04(Xenial Xerus)

本页目录

  • 准备工作
  • 安装依赖项
  • 创建 PostgreSQL 用户
  • 安装 Ruby on Rails
  • 使用 Ruby on Rails 和 PostgreSQL 创建项目
  • 使用脚手架生成应用
  • 结论

Ruby on Rails(简称 RoR 或 Rails)是一个采用 MVC(模型-视图-控制器)架构的 Ruby Web 应用框架,并遵循「不要重复自己」(DRY)、「约定优于配置」(CoC)以及活动记录(active records)模式等设计理念。它是一个用于构建企业级 Web 应用的全面(full-stack)Web 框架。

在本教程中,我们将带你在 Ubuntu 24.04 上完成 Ruby on Rails 的安装,创建第一个 Rails 项目,将 PostgreSQL 配置为 Rails 项目的数据库,并使用 `rails` 命令生成一个脚手架。

准备工作

在开始之前,请确保你已具备以下条件:

  • 一台 Ubuntu 24.04 服务器。
  • 一个具有 sudo 管理员权限的非 root 用户。

安装依赖项

要在你的 Ubuntu 系统上安装 Ruby on Rails,必须先安装 Ruby、Node.js、PostgreSQL(作为数据库可选)、Git 以及其他一些开发包等依赖项。这些软件包都可在 Ubuntu 默认仓库中获取,你可以直接使用 APT 进行安装。

首先,使用以下命令更新你的 Ubuntu 软件仓库:

sudo apt update

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

现在使用以下命令安装 Ruby on Rails 所需的依赖项。通过该命令,你将安装 Ruby、PostgreSQL、Node.js、git 以及一些开发包。

sudo apt install ruby ruby-dev postgresql libpq-dev nodejs yarnpkg git zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev libffi-dev

输入 Y 以继续安装。

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

安装完成后,使用以下命令查看 Ruby 和 Node.js 的版本:

ruby -v
node -v

如下图所示,已安装 Ruby 3.2 和 Node.js 18.19。

接下来,运行以下命令将 Yarn 设置为 Node.js 的包管理器。这将创建新的 `yarn` 命令,并会显示 Yarn 的版本号。

sudo ln -s /usr/bin/yarnpkg /usr/bin/yarn
yarnpkg -v

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

最后,使用以下命令检查 PostgreSQL 服务的状态:

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

PostgreSQL 服务器会在系统启动时自动启动,其状态显示为 `active (exited)`。

创建 PostgreSQL 用户

依赖项安装完成后,你需要为 Rails 项目创建一个新的 PostgreSQL 用户。该用户必须能够登录,并能在 PostgreSQL 中创建新的数据库。

使用以下命令登录 PostgreSQL 服务器。

sudo -u postgres psql

运行以下查询语句,创建一个名为 `appuser`、密码为 `AppuserPassword` 的新 PostgreSQL 用户。该用户将能够在 PostgreSQL 中创建数据库和角色。

CREATE USER appuser WITH PASSWORD 'AppuserPassword';
ALTER USER appuser CREATEDB CREATEROLE;

现在输入 quit 或按下 Ctrl+d 退出 PostgreSQL。

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

接下来,运行以下命令以 `appuser` 用户身份登录 PostgreSQL。在提示时输入你的密码。

su - postgres
psql -U appuser -h 127.0.0.1 -d postgres

登录后,使用以下命令查看 PostgreSQL 的连接状态:

\conninfo

如下图所示,新用户 `appuser` 可以通过密码认证,经由 localhost 或 127.0.0.1 连接到 PostgreSQL 服务器。

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

安装 Ruby on Rails

在本节中,你将在用户专属的环境中安装最新版本的 Ruby on Rails。因此,你需要为用户设置默认的 GEM_HOME 目录。

首先,使用以下命令登录到你的用户:

su - user

创建新的 ~/.gem 目录,并通过 ~/.bashrc 文件添加 GEM_HOME 环境变量。这样,所有 Ruby gems 都会被安装到 ~/.gem 目录中。

mkdir -p ~/.gem
echo 'export GEM_HOME=$HOME/.gem' >> $HOME/.bashrc

现在运行以下命令重新加载当前 shell 并检查 GEM_HOME 环境变量。你将看到 GEM_HOME 指向了 ~/.gem 目录。

source ~/.bashrc
echo $GEM_HOME

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

接下来,运行以下 gem 命令在系统中安装 bundler。

gem install bundler

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

之后,使用以下 gem 命令安装 Ruby on Rails。你可以安装最新版本的 Ruby on Rails,也可以使用 -v 选项指定特定版本。

gem install rails
gem install rails -v 7.1.0

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

安装完成后,使用以下命令查看 Ruby on Rails 的版本:

rails --version
rails --help

如下图所示,已安装最新的 Ruby on Rails 7.1.3,你还可以看到 `rails` 命令的基本用法。

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

使用 Ruby on Rails 和 PostgreSQL 创建项目

现在你已经安装好了 Ruby on Rails。在本节中,你将创建第一个以 PostgreSQL 为默认数据库的 Rails 项目。

运行以下 `rails` 命令创建一个新的 Rails 项目。在本示例中,你将创建一个名为 testapp、默认数据库为 PostgreSQL 的新项目。

rails new testapp -d postgresql

如下图所示,Rails 应用已生成,并且已初始化 git。

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

现在切换到 ~/testapp 目录,并编辑数据库配置文件 `config/database.yml`。

cd ~/testapp/
nano config/database.yml

按照以下内容修改 development、test 和 production 环境的数据库配置。各环境的数据库将在迁移过程中自动创建。

development:
 <<: *default
 database: testapp_development
 username: appuser
 password: AppuserPassword
 host: localhost
 port: 5432
test:
 <<: *default
 database: testapp_test
 username: appuser
 password: AppuserPassword
 host: localhost
 port: 5432
production:
 <<: *default
 database: testapp_production
 username: appuser
 password: <%= ENV["TESTAPP_DATABASE_PASSWORD"] %>

完成后,保存文件并退出。

接下来,运行以下 `rails` 命令来设置并迁移数据库。

rails db:setup
rails db:migrate

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

数据库迁移完成后,使用以下命令运行你的 Rails 项目:

rails server -b 0.0.0.0

如下图所示,你的 Rails 项目正在默认的 3000 端口上运行。

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

使用 Web 浏览器访问你的服务器 IP 地址 http://192.168.5.30:3000/。如果 Rails 安装成功,你应该会看到如下默认的 Rails 首页:

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

使用脚手架生成应用

Ruby on Rails 为初学者提供了一种便捷的应用构建方式。你可以利用脚手架(scaffold)生成 Rails 项目的基本结构,其中包括控制器(controller)、模型(model)和视图(view)。

运行以下命令,为一个具有 `name` 和 `url` 两个用户输入项的简单应用 `site` 生成脚手架。

rails g scaffold site name:string url:string

如下所示,Rails 已为你的应用生成了模型、控制器和视图。

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

脚手架生成后,运行以下命令迁移你的 Rails 数据库。

rails db:migrate

如下图所示,Rails 数据库已迁移完成。

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

现在使用以下命令运行你的 Rails 项目。

rails server -b 0.0.0.0

最后,访问你的服务器 IP 地址 http://192.168.5.30:3000/sites 进入 `site` 应用。你可以提交新的 name 和 url 数据。提交新数据后,效果如下图所示。

在 Ubuntu 24.04 上安装并配置 Ruby on Rails

结论

恭喜!你已完成在 Ubuntu 24.04 上安装 Ruby on Rails。你创建了一个以 PostgreSQL 为数据库的 Rails 项目。最后,你还学习了如何使用脚手架功能在 Rails 上生成基础应用。