2015-06-01 90 views
1

Ruby的變量我想要做的事,如:動態創建的字符串插值

4.times do |n| 
    "member#{n}" = Fabricate(:user) 
end 

調用member1member2等會給我的用戶實例。 #send或#eval對我的情況有用嗎?感謝您的期待。

回答

2

您不能以這種方式動態設置local variables,因爲您實際要做的是設置String。您的代碼如下

"member1" = Fabricate(:user) 

這將提高一個SyntaxError意外=,因爲你不能設置一個String以任何解釋。

你可以instance_variables像這樣但是執行此操作:

4.times do |n| 
    instance_variable_set("@member#{n}", Fabricate(:user)) 
end 

然後用@member1@member2訪問它們,等

要回答你的第二個問題是沒有sendeval沒有特別的用途在這種情況下

相關問題