Подача данных контроллера рельсов Morris.Line () не работает - PullRequest
0 голосов
/ 24 октября 2019

Поэтому я пытаюсь заполнить этот объект 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 () (первый блок кода), он не отображается в моем браузере, ресурс графика даже исчезает.

Кто-нибудь сейчас как сделать эту работу или я что-то не так делаю? Приветствия.

...