2017-02-07 19 views
2

我找不到一個類似的問題,但我確定它在那裏,所以請指出我的方向,如果是的話。我正在編寫一個rspec測試,並想動態分配9個變量。紅寶石動態分配編號變量

長的方式做到這一點:

@store.owner.item1 = (Faker::Lorem.word) 
@store.owner.item2 = (Faker::Lorem.word) 
@store.owner.item3 = (Faker::Lorem.word) 
@store.owner.item4 = (Faker::Lorem.word) 
@store.owner.item5 = (Faker::Lorem.word) 
@store.owner.item6 = (Faker::Lorem.word) 
@store.owner.item7 = (Faker::Lorem.word) 
@store.owner.item8 = (Faker::Lorem.word) 
@store.owner.item9 = (Faker::Lorem.word) 

東西接近我正在尋找(不工作):

(1..9).each { |number| @store.owner.send("item#{number}") = (Faker::Lorem.word) } 
+4

我真的推薦將'@ store.owner.items'設置爲一個數組,並使用'@ store.owner.items [0]'來訪問每個元素。 – thesecretmaster

回答

5
(1..9).each { |number| @store.owner.send("item#{number}=", Faker::Lorem.word) } 

您可以發送item6item6=兩者是owner的方法。如果您發送需要自己的參數的方法(如item6=所做的那樣),則send方法的下一個參數是要發送給該方法的參數。

+0

這工作,非常感謝! – alisontague