Rails数据填充 #

一、Seeds文件 #

1.1 基本用法 #

ruby
# db/seeds.rb
User.create!(
  email: 'admin@example.com',
  password: 'password',
  admin: true
)

10.times do |i|
  Article.create!(
    title: "文章 #{i + 1}",
    body: "这是第 #{i + 1} 篇文章的内容..."
  )
end

1.2 执行seeds #

bash
rails db:seed

# 重置并填充
rails db:reset

二、使用Faker #

2.1 安装Faker #

ruby
# Gemfile
group :development, :test do
  gem 'faker'
end

2.2 生成测试数据 #

ruby
# db/seeds.rb
require 'faker'

50.times do
  User.create!(
    email: Faker::Internet.email,
    name: Faker::Name.name,
    phone: Faker::PhoneNumber.phone_number
  )
end

100.times do
  Article.create!(
    title: Faker::Lorem.sentence,
    body: Faker::Lorem.paragraph(sentence_count: 10),
    author: User.random
  )
end

三、批量导入 #

3.1 使用insert_all #

ruby
# db/seeds.rb
users_data = 1000.times.map do |i|
  {
    email: "user#{i}@example.com",
    name: Faker::Name.name,
    created_at: Time.now,
    updated_at: Time.now
  }
end

User.insert_all(users_data)

四、总结 #

4.1 核心要点 #

要点 说明
seeds.rb 数据填充文件
Faker 生成测试数据
insert_all 批量导入
db:seed 执行填充

4.2 下一步 #

现在你已经掌握了数据填充,接下来让我们学习 数据库索引,深入了解Rails的索引优化!

最后更新:2026-03-28