我正在尝试创建一组具有不同实例名称的实例,使用instance_variable_set来更改实例名称,我似乎无法将其转换为 工作
for i in 0..3 do
username_str = String.new
username_str = 'user_' + i.to_s
username_new = User.new
username_new.instance_variable_set("@#{WHAT_DO_I_PUT_HERE?}", username_str)
username_new = User.create(:username => username_str)
end
我无法弄清楚的部分是我在instance_variable_set的第一个字段中放置了什么?我有“WHAT_DO_I_PUT_HERE?”?
答案 0 :(得分:4)
实例变量可能是该作业的错误工具。如果您只想创建三个用户,那么:
3.times do |i|
User.create(:username => "user_#{i}")
end
如果您需要保留User对象供以后使用,那么您可以使用数组:
@users = 3.times.map do |i|
User.create(:username => "user_#{i}")
end
之后@users[0]
将检索第一个用户实例,@users[1]
第二个实例,& c。
答案 1 :(得分:0)
您将放置一个包含要设置的实例变量名称的字符串。或者,如果你没有这样的字符串,你可以跳过字符串插值并自己在那里写下实例变量的名称。