循环中的循环来填充数组?

时间:2009-06-30 19:47:52

标签: ruby-on-rails ruby database open-flash-chart

我正在建立一个时间注册计划。用户可以处理项目,我想在图表中显示每个用户每个月在项目上工作的时间。图表插件的工作方式如下:

first_serie = OpenFlashChartLazy::Serie.new(
[["2008-1",100],["2008-2",120],["2008-3",130]],
{:title=>"name_of_user1",:start_date=>Time.mktime(2008,1,1),:items=>8})

这会在图表中添加一个新行。

我的问题是我如何遍历所有用户,并为每个用户填充一个包含数据库数据的新系列?

2 个答案:

答案 0 :(得分:4)

我不知道你如何为Serie.new生成所有数据,但是你可以开始使用它:

@series = []
users = User.find(:all)
users.each do |user|
  @series << OpenFlashChartLazy::Serie.new(blah, blah, blah)
end

这会将所有添加的Serie对象添加到数组中。

答案 1 :(得分:1)

作为Pesto的后续使用注射会更好。

@series = User.all.inject([]) do |mem, user|
  mem << OpenFlashChartLazy::Serie.new(user.foo, user.bar, user.foobarbob)
end

相同的代码,只是没有@series = []