Поэтому я пытаюсь заполнить этот объект morris.line данными, которые я собрал и проанализировал для соответствия этому формату
Объект Morris.Line: (View)
new Morris.Line({
element: @disc_c['element'],
data: @disc_c['data'],
xkey: @disc_c['xkey'],
ykeys: @disc_c['ykeys'],
labels: @disc_c['labels']
});
Данные, которые я собрал и проанализировал: (Контроллер)
...
@disc_c = GraphElement.new(disc_f)
...
"GraphElement":
class GraphElement < Struct.new(:element, :data, :xkey, :ykeys, :labels)
def initialize (tool)
@input = tool
self.element = @input[0]['tool'].to_s + "_chart"
self.xkey = 'time'
self.ykeys = ['total', 'uptodate', 'outdated', 'error']
self.labels = ['Total', 'Valides', 'obsolète', 'Erreur']
self.data = data_table(@input)
end
def parse_time(timestamp)
raw_time = timestamp[0, 10]
return raw_time
end
def data_table(table)
data = Array.new
table.each do |t|
dot = { time: parse_time(t['created_at'].to_s),
total: t['total'],
uptodate: t['uptodate'],
outdated: t['outdated'],
error: t['error']
}
data << dot
end
return data
end
end
Когда я'pp' (довольно печатный) '@disc_c', я получаю GraphElement, проанализированный как требуется, и как Morris.Line () отформатирован.
element="disc_chart",
data=
[{:time=>"2019-10-17",
:total=>1348,
:uptodate=>512,
:outdated=>850,
:error=>14},
{:time=>"2019-10-21",
:total=>1349,
:uptodate=>506,
:outdated=>858,
:error=>15},
{:time=>"2019-10-23",
:total=>1350,
:uptodate=>507,
:outdated=>858,
:error=>15}],
xkey="time",
ykeys=["total", "uptodate", "outdated", "error"],
labels=["Total", "Valides", "obsolète", "Erreur"]>
Однако, когда я передаю свой якобы хорошо отформатированный '@disc_c' объекту Morris.Line () (первый блок кода), он не отображается в моем браузере, ресурс графика даже исчезает.
Кто-нибудь сейчас как сделать эту работу или я что-то не так делаю? Приветствия.