You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

拆分Rails种子文件后执行rails db:seed无反应的问题排查求助

拆分Rails种子文件后执行rails db:seed无反应的问题排查求助

大家好,我最近尝试拆分Rails项目的种子文件,结果执行rails db:seed时完全没有反应,连我特意加的raise语句都没触发,实在摸不清问题出在哪,想请各位帮忙排查下。

我的项目目录结构如下:

db/
  seeds/
    01_user_seed.rb
    02_product_seed.rb
    03_images_seed.rb
  seeds.rb

我参考文章的写法(做了小幅修改),在seeds.rb中写了这段代码:

Dir[Rails.root.join('db', 'seeds', '*.rb')].sort.each do |seed|
  load seed
end

但执行rails db:seed后,命令就默默地结束了,完全没有执行各个种子文件里的内容。我试着在这段代码的前后都添加raise语句测试,结果连raise都没触发,这是不是说明这段代码根本没被执行到?

我现在有几个疑问:

  • 是不是这段加载种子文件的代码写错了?
  • 要不要把Dir[Rails.root...这段逻辑放到config/application.rb里?如果是这样的话,seeds.rb里应该写些什么?

PS:我的01_user_seed.rb是参照Hartl的Rails教程写的,内容如下:

p 'Seeding users...'

1.times do |n|
  name = Faker::Name.name
  email = "ex-#{n+1}@4testing.net"
  password = "pass-#{n+1}"
  User.create!(
    name: name,
    email: email,
    password: password,
    password_confirmation: password
  )
end
p 'Finished seeding users...'

而且在拆分种子文件之前,把所有代码直接写在seeds.rb里时,rails db:seed是能正常工作的。

备注:内容来源于stack exchange,提问作者user3763682

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 11:04:33