我试图在这样的循环中创建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。
答案 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