ruby-on-rails
  • ruby
  • 2017-03-27 59 views -1 likes 
    -1

    我想在這樣的循環來創建3個對象...快速創建3 Ruby對象

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

    我得到的錯誤

    NoMethodError: undefined method to_s=' for 0:Fixnum`

    我認爲它明顯發生了什麼我想做?在循環運行後,我需要三部分(@part1/@part2/@part3),部件號爲0001/2/3。

    回答

    1

    由於羅馬已經建議,你應該使用一個數組。

    但是,爲了回答你的問題:

    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 
    
    +0

    是的!謝謝克里斯。我不知道instance_variable_set方法。 – Lumbee

    相關問題