拆分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
相关产品推荐
相关产品推荐

