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