【发布时间】:2014-11-27 14:50:42
【问题描述】:
我设置了一个非常简单的种子文件来填充模型
year_group_array = ['Reception', 'Year 1', 'Year 2', 'Year 3', 'Year 4', 'Year 5', 'Year 6']
6.times {
year_group = YearGroup.create({
name: year_group_array.sample
})
}
这将确保数组中的所有项目都被填充但不以任何顺序填充(理想情况下,我希望条目按照它们在数组中出现的顺序)并且我正在硬编码循环的次数要运行,我怎样才能使它更加动态,以便在数组中没有更多项目时停止?
我只是想让它的性能更好一点,这样如果我将来向数组中添加任何东西,我就不必计算数组中的项目数并设置迭代值。
【问题讨论】:
-
为什么不试试:
year_group_array[0..5].each { |sample| YearGroup.create(name: sample) }? -
你说得对,我想把它复杂化,愚蠢的问题要问
-
如果我错了,请纠正我,但仅索引一个范围不会对数组进行采样。 Sample 从数组中获取一个随机元素。 ruby-doc.org/core-2.1.5/Array.html#method-i-5B-5D
-
你是对的,josh,sample 确实从数组中获取了一个随机元素,但我的理解是,当与 6.times 结合使用时,每个随机元素都是唯一的,确保我的每个记录在我的数组将被插入到我的模型中
标签: ruby-on-rails ruby arrays ruby-on-rails-4