2009-06-30 82 views
1

我正在建立一個時間註冊程序。用戶可以在一個項目上工作,我想在圖表中顯示每個用戶每個月在一個項目上工作多少個小時。圖表插件的工作原理如下:循環中的循環來填充數組?

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}) 

這會在圖形中添加一條新線。

我的問題是如何循環遍歷我的所有用戶,每個用戶都用數據庫中的數據填充新系列?

回答

1

作爲Pesto的後續更好的使用注射。

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

相同的代碼,只是不具有@series = []

4

我不知道你是如何生成Serie.new所有的數據,但你可以使用這個上手:

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

這將增加所有添加意甲的對象到一個數組。

+0

非常感謝你的洞察,這使得事情說清楚...... @ series.each做|意甲| bar_graph.add_serie(serie) end – arcooverbeek 2009-06-30 21:48:09