快速创建3个红宝石对象

时间:2017-03-27 20:05:14

标签: ruby-on-rails ruby

我试图在这样的循环中创建3个对象......

3.times do |i|
  @part + i.to_s = Part.create(part_number: "000#{i + 1}")
end

我收到错误

  

NoMethodError:未定义的方法to_s ='for 0:Fixnum`

我认为这显然是我想做的事情?在循环运行后,我想要三个部分(@part1 / @part2 / @part3),部件号为0001/2/3。

1 个答案:

答案 0 :(得分:1)

正如Roman已经建议的那样,你应该使用数组。

然而,回答你的问题:

3.times do |i|
  instance_variable_set("@part#{i + 1}", Part.create(part_number: "000#{i + 1}"))
end

甚至:

(1..3).each do |i|
  instance_variable_set("@part#{i}", Part.create(part_number: "000#{i}"))
end