Rails安装与配置 #
一、环境要求 #
1.1 系统要求 #
| 组件 | 最低版本 | 推荐版本 |
|---|---|---|
| Ruby | 3.0 | 3.2+ |
| Rails | 7.0 | 7.1+ |
| SQLite | 3.8 | 3.35+ |
| Node.js | 16.0 | 18.0+ |
| Yarn | 1.22 | 1.22+ |
1.2 开发工具 #
| 工具 | 用途 |
|---|---|
| Git | 版本控制 |
| 代码编辑器 | VS Code、RubyMine |
| 终端 | 命令行操作 |
| 浏览器 | 调试和测试 |
二、Ruby环境安装 #
2.1 macOS安装 #
使用Homebrew安装rbenv:
bash
# 安装Homebrew(如未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装rbenv和ruby-build
brew install rbenv ruby-build
# 配置shell环境
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc
source ~/.zshrc
# 安装Ruby
rbenv install 3.2.2
# 设置全局Ruby版本
rbenv global 3.2.2
# 验证安装
ruby -v
# => ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22]
使用rvm安装:
bash
# 安装GPG密钥
gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
# 安装rvm
\curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
# 安装Ruby
rvm install 3.2.2
# 使用Ruby版本
rvm use 3.2.2 --default
# 验证安装
ruby -v
2.2 Linux安装 #
Ubuntu/Debian:
bash
# 安装依赖
sudo apt update
sudo apt install -y git curl autoconf bison build-essential \
libssl-dev libyaml-dev libreadline6-dev zlib1g-dev \
libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev
# 安装rbenv
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
# 安装ruby-build
git clone https://github.com/rbenv/ruby-build.git \
~/.rbenv/plugins/ruby-build
# 安装Ruby
rbenv install 3.2.2
rbenv global 3.2.2
# 验证
ruby -v
CentOS/RHEL:
bash
# 安装依赖
sudo yum groupinstall "Development Tools"
sudo yum install -y git curl openssl-devel readline-devel \
zlib-devel libffi-devel libyaml-devel
# 安装rbenv(同Ubuntu)
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
# ... 后续步骤同Ubuntu
2.3 Windows安装 #
使用RubyInstaller:
powershell
# 下载RubyInstaller
# 访问 https://rubyinstaller.org/downloads/
# 下载 Ruby+Devkit 版本
# 运行安装程序,勾选:
# - Add Ruby executables to your PATH
# - Associate .rb files with Ruby
# 验证安装
ruby -v
gem -v
使用WSL(推荐):
bash
# 在WSL中安装(参考Linux安装步骤)
# WSL提供更好的开发体验
2.4 使用asdf管理Ruby #
bash
# 安装asdf
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.12.0
echo '. "$HOME/.asdf/asdf.sh"' >> ~/.zshrc
source ~/.zshrc
# 添加Ruby插件
asdf plugin add ruby
# 安装Ruby
asdf install ruby 3.2.2
# 设置全局版本
asdf global ruby 3.2.2
# 验证
ruby -v
三、Rails安装 #
3.1 安装Rails #
bash
# 更新RubyGems
gem update --system
# 安装Rails
gem install rails
# 验证安装
rails -v
# => Rails 7.1.3
3.2 安装特定版本 #
bash
# 安装指定版本
gem install rails -v 7.1.3
# 安装最新预览版
gem install rails --pre
# 查看已安装版本
gem list rails
3.3 安装Bundler #
bash
# Bundler用于管理Gem依赖
gem install bundler
# 验证
bundler -v
# => Bundler version 2.5.6
四、数据库安装 #
4.1 SQLite(默认) #
bash
# macOS
brew install sqlite
# Ubuntu
sudo apt install sqlite3 libsqlite3-dev
# 验证
sqlite3 --version
4.2 PostgreSQL #
macOS安装:
bash
# 安装PostgreSQL
brew install postgresql@15
# 启动服务
brew services start postgresql@15
# 创建数据库用户
createuser -s postgres
# 验证
psql --version
Ubuntu安装:
bash
# 安装PostgreSQL
sudo apt install postgresql postgresql-contrib libpq-dev
# 启动服务
sudo systemctl start postgresql
sudo systemctl enable postgresql
# 创建用户
sudo -u postgres createuser -s $USER
# 验证
psql --version
4.3 MySQL #
macOS安装:
bash
# 安装MySQL
brew install mysql
# 启动服务
brew services start mysql
# 安全配置
mysql_secure_installation
# 验证
mysql --version
Ubuntu安装:
bash
# 安装MySQL
sudo apt install mysql-server mysql-client libmysqlclient-dev
# 启动服务
sudo systemctl start mysql
sudo systemctl enable mysql
# 安全配置
sudo mysql_secure_installation
# 验证
mysql --version
五、Node.js安装 #
5.1 使用fnm(推荐) #
bash
# 安装fnm
curl -fsSL https://fnm.vercel.app/install | bash
source ~/.zshrc
# 安装Node.js
fnm install 18
fnm use 18
fnm default 18
# 验证
node -v
npm -v
5.2 使用nvm #
bash
# 安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.zshrc
# 安装Node.js
nvm install 18
nvm use 18
nvm alias default 18
# 验证
node -v
5.3 安装Yarn #
bash
# 使用npm安装
npm install -g yarn
# 验证
yarn -v
六、创建第一个Rails项目 #
6.1 创建项目 #
bash
# 创建默认项目(使用SQLite)
rails new myapp
# 使用PostgreSQL
rails new myapp -d postgresql
# 使用MySQL
rails new myapp -d mysql
# API模式
rails new myapp --api
# 跳过测试(使用RSpec)
rails new myapp --skip-test
# 跳过Webpack/Importmap
rails new myapp --skip-javascript
6.2 项目选项 #
| 选项 | 说明 |
|---|---|
-d, --database |
指定数据库 |
--api |
创建API模式项目 |
--skip-test |
跳过测试框架 |
--skip-git |
跳过Git初始化 |
--skip-javascript |
跳过JavaScript |
--skip-turbolinks |
跳过Turbolinks |
--skip-action-mailer |
跳过邮件功能 |
--skip-action-mailbox |
跳过邮箱功能 |
--skip-action-text |
跳过富文本 |
6.3 项目结构 #
text
myapp/
├── app/ # 应用代码
│ ├── controllers/ # 控制器
│ ├── models/ # 模型
│ ├── views/ # 视图
│ ├── helpers/ # 辅助方法
│ ├── javascript/ # JavaScript
│ └── assets/ # 静态资源
├── bin/ # 可执行脚本
├── config/ # 配置文件
├── db/ # 数据库文件
├── lib/ # 库文件
├── log/ # 日志文件
├── public/ # 公共文件
├── test/ # 测试文件
├── tmp/ # 临时文件
├── vendor/ # 第三方代码
├── Gemfile # Gem依赖
├── Gemfile.lock # 锁定版本
├── config.ru # Rack配置
└── Rakefile # Rake任务
七、配置Rails应用 #
7.1 数据库配置 #
yaml
# config/database.yml(PostgreSQL示例)
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
host: localhost
username: <%= ENV['DB_USER'] %>
password: <%= ENV['DB_PASSWORD'] %>
development:
<<: *default
database: myapp_development
test:
<<: *default
database: myapp_test
production:
<<: *default
database: myapp_production
username: myapp
password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>
7.2 应用配置 #
ruby
# config/application.rb
module Myapp
class Application < Rails::Application
# 时区设置
config.time_zone = "Beijing"
# 默认语言
config.i18n.default_locale = :zh
# 加载路径
config.autoload_paths << Rails.root.join('lib')
# 生成器配置
config.generators do |g|
g.orm :active_record
g.test_framework :rspec
g.stylesheets false
g.javascripts false
g.helper false
end
end
end
7.3 环境配置 #
ruby
# config/environments/development.rb
Rails.application.configure do
# 开发模式设置
config.cache_classes = false
config.eager_load = false
config.consider_all_requests_local = true
config.server_timing = true
config.action_controller.perform_caching = false
config.active_storage.service = :local rescue nil
config.action_mailer.raise_delivery_errors = false
config.active_support.deprecation = :log
config.active_record.migration_error = :page_load
config.assets.debug = true
config.assets.quiet = true
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
end
八、Gemfile配置 #
8.1 基本Gemfile #
ruby
# Gemfile
source "https://rubygems.org"
ruby "3.2.2"
# Rails
gem "rails", "~> 7.1.3"
# 数据库
gem "pg", "~> 1.5" # PostgreSQL
# gem "mysql2", "~> 0.5" # MySQL
# gem "sqlite3", "~> 1.4" # SQLite
# Web服务器
gem "puma", ">= 5.0"
# 资源处理
gem "jsbundling-rails"
gem "turbo-rails"
gem "stimulus-rails"
gem "cssbundling-rails"
# 数据处理
gem "jbuilder"
# Redis(可选)
gem "redis", "~> 5.0"
# 任务调度
gem "bootsnap", require: false
group :development, :test do
gem "debug", platforms: %i[mri windows]
gem "rspec-rails", "~> 6.0"
gem "factory_bot_rails"
gem "faker"
end
group :development do
gem "web-console"
gem "bullet"
gem "better_errors"
gem "binding_of_caller"
gem "rubocop-rails", require: false
gem "brakeman", require: false
end
group :test do
gem "capybara"
gem "selenium-webdriver"
gem "webdrivers"
end
8.2 安装Gem #
bash
# 安装所有Gem
bundle install
# 更新所有Gem
bundle update
# 更新特定Gem
bundle update rails
# 检查过时的Gem
bundle outdated
# 查看Gem依赖
bundle show
九、开发工具配置 #
9.1 VS Code配置 #
json
// .vscode/settings.json
{
"ruby.lint": {
"rubocop": {
"lint": true,
"rails": true
}
},
"ruby.format": "rubocop",
"editor.formatOnSave": true,
"files.associations": {
"*.rb": "ruby",
"*.erb": "erb"
}
}
9.2 推荐VS Code扩展 #
json
// .vscode/extensions.json
{
"recommendations": [
"shopify.ruby-lsp",
"bradlc.vscode-tailwindcss",
"aliariff.vscode-erb-beautify",
"ninoseki.vscode-gem-lens",
"kaiwood.endwise"
]
}
9.3 Git配置 #
bash
# 配置Git
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
# 配置.gitignore
echo ".env" >> .gitignore
echo ".env.*" >> .gitignore
echo "*.log" >> .gitignore
echo "tmp/" >> .gitignore
十、验证安装 #
10.1 创建数据库 #
bash
# 创建数据库
rails db:create
# 输出:
# Created database 'myapp_development'
# Created database 'myapp_test'
10.2 启动服务器 #
bash
# 启动开发服务器
rails server
# 或简写
rails s
# 指定端口
rails s -p 3001
# 指定IP
rails s -b 0.0.0.0
# 后台运行
rails s -d
10.3 访问应用 #
打开浏览器访问 http://localhost:3000,看到Rails欢迎页面表示安装成功。
10.4 Rails控制台 #
bash
# 启动控制台
rails console
# 或简写
rails c
# 在控制台中测试
irb(main):001> Rails.env
=> "development"
irb(main):002> Rails.root
=> #<Pathname:/path/to/myapp>
irb(main):003> exit
十一、常见问题 #
11.1 Gem安装失败 #
bash
# 安装native扩展失败
# macOS
xcode-select --install
# Ubuntu
sudo apt install build-essential libssl-dev
# 使用特定版本
gem install pg -v '1.5.4' -- --with-pg-config=/usr/local/bin/pg_config
11.2 权限问题 #
bash
# 避免使用sudo安装Gem
# 配置用户级Gem安装
# 使用rbenv/rvm自动解决权限问题
# 或配置GEM_HOME
export GEM_HOME="$HOME/.gem"
export PATH="$GEM_HOME/bin:$PATH"
11.3 端口占用 #
bash
# 查找占用端口的进程
lsof -i :3000
# 终止进程
kill -9 <PID>
# 或使用其他端口
rails s -p 3001
十二、总结 #
12.1 安装清单 #
| 步骤 | 命令 | 验证 |
|---|---|---|
| 安装Ruby | rbenv install 3.2.2 |
ruby -v |
| 安装Rails | gem install rails |
rails -v |
| 安装Node.js | fnm install 18 |
node -v |
| 创建项目 | rails new myapp |
- |
| 创建数据库 | rails db:create |
- |
| 启动服务 | rails server |
访问localhost:3000 |
12.2 下一步 #
环境配置完成后,接下来让我们创建 第一个应用,开始Rails开发之旅!
最后更新:2026-03-28