حلقة في حلقة لملء مجموعة؟
-
21-08-2019 - |
سؤال
وأنا على بناء برنامج تسجيل الوقت. يمكن للمستخدمين العمل على المشروع، وأريد أن عرض في مخطط كم عدد ساعات العمل لكل مستخدم على المشروع، دعنا نقول، كل شهر. البرنامج المساعد المخطط يعمل مثل هذا:
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})
وهذا يضيف خطا جديدا في الرسم البياني.
وسؤالي هو كيف يمكنني حلقة من خلال كل ما عندي من المستخدمين ولكل ملء سلسلة جديدة مع البيانات من قاعدة البيانات؟
المحلول
وكمتابعة لبيستو سيكون أجمل لاستخدام حقن.
@series = User.all.inject([]) do |mem, user|
mem << OpenFlashChartLazy::Serie.new(user.foo, user.bar, user.foobarbob)
end
ونفس الرمز، فقط لا يتلقىseries = []
نصائح أخرى
وليس لدي أي فكرة كيف تولد كل البيانات لSerie.new، ولكن يمكنك البدء باستخدام هذه:
@series = []
users = User.find(:all)
users.each do |user|
@series << OpenFlashChartLazy::Serie.new(blah, blah, blah)
end
وهذا سيضيف كافة الكائنات دوري الدرجة الاولى الايطالي تضاف إلى مجموعة.
لا تنتمي إلى StackOverflow