Ruby on rails splitseeds.rb文件
我的Ruby on rails splitseeds.rb文件,ruby-on-rails,ruby,refactoring,Ruby On Rails,Ruby,Refactoring,我的seeds.rb文件变得非常大。重构文件中数据的最佳方法是什么 我是否可以将数据放入各种文件中,并在seeds.rb文件中需要它们?由于您的seeds.rb文件是Ruby,因此您可以在其中使用Ruby执行任何操作。像routes.rb和Gemfile一样,如果需要,您可以获得相当的创造力 只是要确保你没有做任何疯狂的事情,这实际上需要一些调试。只要你保持行动清晰,就不会有混乱。也就是说,不要使用在其他文件中定义的自定义帮助器方法,这些方法可能会出现故障,并且必须手动跟踪。在这样做时,最好坚持
seeds.rb
文件变得非常大。重构文件中数据的最佳方法是什么
我是否可以将数据放入各种文件中,并在
seeds.rb
文件中需要它们?由于您的seeds.rb
文件是Ruby,因此您可以在其中使用Ruby执行任何操作。像routes.rb
和Gemfile
一样,如果需要,您可以获得相当的创造力
只是要确保你没有做任何疯狂的事情,这实际上需要一些调试。只要你保持行动清晰,就不会有混乱。也就是说,不要使用在其他文件中定义的自定义帮助器方法,这些方法可能会出现故障,并且必须手动跟踪。在这样做时,最好坚持使用最简单的解决方案。我们将所有种子存储在文件夹db/seeds
和db/seeds.rb
中,我们编写以下代码:
Dir[File.join(Rails.root, 'db', 'seeds', '*.rb')].sort.each { |seed| load seed }
在加载文件之前,我们会按字母顺序对文件进行排序,以便确保文件按顺序处理(通过明智地选择文件名,例如01_operators.rb、02_companys.rb、03_products.rb…
)
希望这有帮助。将其包含在seeds.rb文件中:需要“#{Rails.root}/db/data.rb”。它似乎没有任何问题,非常有用。我到处寻找解决这个问题的好办法。感谢您的发布。如果您正在编写Rails引擎,请注意使用YourEngineName::Engine.root
而不是Rails.root
这似乎更简单,那么您可以在种子文件中上下移动行,而不是重命名文件:更简单?在链接答案中,必须创建文件并编辑seeds.rb文件才能加载它@nathanvda是一个很好的想法,但将其命名为01
02
只是在重组时自找麻烦。将其命名为0100
和0200
,如果您想在1和2之间移动99
,只需将其命名为0150
,而不必将02
重命名为98
。如果将数字隔开X(本例中为100),并始终选择中间的数字,则在需要重命名某个对象以获取新对象之前,最多可以进行log_2(X)
(本例中为6)插入。自从你最初发布这篇文章已经有几年了,希望你现在已经解决了这个问题。