Rails Active Record基础 #

一、Active Record概述 #

1.1 什么是Active Record #

Active Record是Rails的ORM(对象关系映射)层,将数据库表映射为Ruby类,将表行映射为Ruby对象。

1.2 命名约定 #

模型类 表名 示例
User users User => users
Article articles Article => articles
OrderItem order_items OrderItem => order_items

二、模型定义 #

2.1 创建模型 #

bash
rails generate model User name:string email:string

2.2 模型文件 #

ruby
# app/models/user.rb
class User < ApplicationRecord
  # 模型代码
end

三、CRUD操作 #

3.1 创建 #

ruby
# 创建并保存
user = User.create(name: 'John', email: 'john@example.com')

# 创建但不保存
user = User.new(name: 'John')
user.save

# 批量创建
User.create([
  { name: 'John', email: 'john@example.com' },
  { name: 'Jane', email: 'jane@example.com' }
])

3.2 读取 #

ruby
# 查找单个
user = User.find(1)
user = User.find_by(email: 'john@example.com')
user = User.first
user = User.last

# 查找多个
users = User.all
users = User.where(name: 'John')
users = User.where(age: 18..30)

3.3 更新 #

ruby
# 更新属性
user.name = 'Jane'
user.save

# 批量更新
user.update(name: 'Jane', email: 'jane@example.com')

# 批量更新多条
User.where(active: false).update_all(active: true)

3.4 删除 #

ruby
# 删除单个
user.destroy

# 批量删除
User.where(active: false).destroy_all

# 删除所有
User.delete_all

四、数据类型 #

4.1 常用数据类型 #

迁移类型 Ruby类型 数据库类型
:string String varchar
:text String text
:integer Integer integer
:float Float float
:decimal BigDecimal decimal
:boolean Boolean boolean
:datetime DateTime datetime
:date Date date
:json Hash/Array json

五、总结 #

5.1 核心要点 #

要点 说明
命名约定 类名单数,表名复数
CRUD create/read/update/destroy
数据类型 string/text/integer等

5.2 下一步 #

现在你已经掌握了Active Record基础,接下来让我们学习 关联关系,深入了解Rails的模型关联!

最后更新:2026-03-28