2

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

这是我的 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
4

1 回答 1

7

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

看起来你会更好地使用map调用,将groups_list字符串数组转换为Group属于的对象数组u

groups_list.map { |name| u.groups.create name: name }
#=> [<Group name="Math Club">, …]

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

于 2013-05-26T23:06:20.737 回答