创建从#{}命名的变量?

Fil*_*uzi 0 ruby

我有以下代码:

3.times do |n|
    "project#{n}" = FactoryGirl.create(:project, :title => "Project #{n}")
end
Run Code Online (Sandbox Code Playgroud)

这显然不起作用...有谁知道如何制作循环,我可以使用'本地循环变量'来改变变量名称,以生成很多变量,如project1,project2,projekt3?

knu*_*nut 6

你能用哈斯吗?

project = {}
3.times do |n|
    project[n] = FactoryGirl.create(:project, :title => "Project #{n}")
end
Run Code Online (Sandbox Code Playgroud)

您可以使用project[1]... 访问数据

  • 具有不同键/值对的散列通常比*变量*反模式更容易使用.在这种情况下,即使是"数组"也会更好,因为键总是数字. (3认同)