拆分seeds.rb文件

我的seeds.rb文件变得非常大。 重构文件中数据的最佳方法是什么?

我可以将数据放入各种文件中并在seeds.rb文件中require它们吗?

由于您的seeds.rb文件是Ruby,因此您可以在Ruby中执行任何操作。 与routes.rbGemfile一样,如果需要,您可以获得相当的创意。

只要确保你不做任何疯狂的事情,它实际上需要一些调试。 只要你明确你的行动,就不应该有混淆。 也就是说,不要使用在某些其他文件中定义的自定义帮助程序方法,这些方法可能会发生故障并且必须手动跟踪。 在做这样的事情时,最好坚持最简单的解决方案。

我们将所有种子存储在db/seeds文件夹中,并在db/seeds.rb编写以下内容:

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

我们在加载文件之前按字母顺序对文件进行排序,因此我们可以确保按顺序处理文件(明智地选择文件名,例如01_operators.rb, 02_companies.rb, 03_products.rb ... )。

希望这可以帮助。