在使用each_with_index循环时,如何将索引合并到变量名中?

时间:2013-05-26 23:01:18

标签: ruby-on-rails ruby

如何将索引合并到变量名中,以便我可以访问不同的组对象?

这是我的db / seeds.rb文件:

u = User.create( email: "yeah@foo.com", password: "yeah", password_confirmation: "yeah")

groups_list = ["Math Club", "Science Class", "Economics Class"]

groups_list.each_with_index do |name, index|
  "g#{index}" = u.groups.create(name: name)
end

1 个答案:

答案 0 :(得分:7)

当你开始需要动态定义的局部变量时,你会产生代码味道,并且你知道你应该重新考虑你正在做什么。

看起来您最好通过map调用,将groups_list从字符串数组转换为属于Group的{​​{1}}个对象数组:

u

然后你可以遍历这些组或将它们作为数组传递给另一个方法,不涉及任何技巧。