如何从数组创建实例变量?

Vic*_*tor 0 ruby ruby-on-rails

我正在使用Rails 3.2.这是我的代码:

transports = %w(car bike)

transports.each do |transport|
  @transport = transport.classify.all
end
Run Code Online (Sandbox Code Playgroud)

该代码不起作用,但我希望结果如下:

@cars = Car.all
@bikes = Bike.all
Run Code Online (Sandbox Code Playgroud)

我怎么做?

tor*_*o2k 5

transports.each do |transport|
  instance_variable_set("@#{transport}", 
                        transport.classify.constantize.all)
end
Run Code Online (Sandbox Code Playgroud)

更新假设transports数组中的条目现在是单数,正确的代码可以获得您想要的结果

transports.each do |transport|
  instance_variable_set("@#{transport.pluralize}", 
                        transport.classify.constantize.all)
end
Run Code Online (Sandbox Code Playgroud)