拆分seeds.rb文件

时间:2011-10-31 18:56:55

标签: ruby-on-rails ruby refactoring

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

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

2 个答案:

答案 0 :(得分:68)

我们将所有种子存储在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 ...)。

希望这有帮助。

答案 1 :(得分:3)

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

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