2016-04-13 10 views
0
içindeki her Rails yapmak nasıl kullanılır

Benim HTML benziyor:Chartkick

@values = WorkingMonth.select("date_end","workload").where(personal_id: @current_employee.personal_id) 
@values.each do |data| 
@data = [ 
    { 
    name: "Available", 
    data: [] 
    }, 
    { 
    name: "Workload", 
    data:[[data.date_end.strftime("%B"),data.workload]] 
    } 
] 
end 

Benim sorunum @values ​​olduğundan daha fazla vardır: benim denetleyicisi olarak

<%= column_chart @data, stacked: true %> 

Veri alan oluşturduk sadece bir değer ama bana sadece sonuncusu gösterir. Her veriyi bu veri alanıyla nasıl kullanabilirim? peşin

Teşekkür

GÜNCELLEME: Sen map kullanmalıdır Column Chart

cevap

0

Düşünme ve .each/.map kullanarak kullanmayı bırakma yöntemini değiştirdim. "Grup" ve "DATE_TRUNC" kullandım. Sorunumun cevabı şunun gibi görünüyor:

@data = [{name: "Workload", data: WorkingMonth.where(personal_id: @current_employee.personal_id).group("DATE_TRUNC('Month', date_end)").sum(:workload)}] 
1

: gibi sonuç görünüyor değiştirdikten sonra

@data = @values.map do |value| 
@data = [ 
    {name: "Available", data: []}, 
    {name: "Workload", data:[[value.date_end.strftime("%B"),value.workload]]} 
] 
end 

:

ben gibi benim veri alanını değiştirdik @values dönüştürmek istediğinizden, each yerine dizi:

@data = @values.map do |value| 
[ 
    { name: "Available", data: [] }, 
    { name: "Workload", data: [[value.date_end.strftime("%B"),value.workload]] } 
] 
end 
+0

Bana söylediğin gibi değiştirdim ama şimdi sonuç var [object Object] –