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

时间:2013-05-14 14:21:59

标签: ruby-on-rails ruby

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

transports = %w(car bike)

transports.each do |transport|
  @transport = transport.classify.all
end

该代码无效,但我希望结果为:

@cars = Car.all
@bikes = Bike.all

我该怎么做?

1 个答案:

答案 0 :(得分:5)

transports.each do |transport|
  instance_variable_set("@#{transport}", 
                        transport.classify.constantize.all)
end

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

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