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