Проблема с вашим кодом в том, что вы не передали правильный формат данных на line_chart
. Чтобы нарисовать линию диаграммы данные должны быть в формате хеша, например:
<%= line_chart {"2016-05-21 23:50:40 UTC"=>20, "2016-05-21 23:50:57 TC"=>23} %>
{ "2016-05-21 23:50:40 UTC" => 20, «2016-05-21 23:50:57 UTC "=> 23}
В предыдущем примере вы видите финики (строки) в качестве ключей к хэш и значений (целые числа) являются 20 и 23. В вашем случае вам нужен Hash где ключами являются даты и значения Хэша, это максимальная, минимальная или текущая температура. { "дата_1" => номер, "дата_2" => номер, ...}
Чтобы проверить мой код, который я создал модель под названием температуры. Вот таблица: Я назвал это
create_table "temperatures", force: :cascade do |t|
t.integer "max", limit: 4
t.integer "min", limit: 4
t.integer "current", limit: 4
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
На мой взгляд:
<%= line_chart [
{name: "Series A", data: Temperature.all.inject({}) {|res, v| res[v[:created_at]] = v.max; res }},
{name: "Series B", data: Temperature.all.inject({}) {|res, v| res[v[:created_at]] = v.current; res }},
{name: "Series C", data: Temperature.all.inject({}) {|res, v| res[v[:created_at]] = v.min; res }}
] %>
И я получил участок с 3 линиями, показывающими макс, мин и текущую температуру в течение долгого времени.
Я использовал инъецировать для создания хэша, где ключи даты и значения атрибутов [макс, мин, ток] модели Temeperature. Для получения дополнительной информации о введите, см. this stackoverflow thread.
В вашем случае вы должны попробовать это:
<%= line_chart [
{name: "Series A", data: @tray.datalogs.inject({}) {|res, v| res[v[:created_at]] = v.ambmax; res }},
{name: "Series B", data: @tray.datalogs.inject({}) {|res, v| res[v[:created_at]] = v.ambcur; res }},
{name: "Series C", data: @tray.datalogs.inject({}) {|res, v| res[v[:created_at]] = v.ambmin; res }}
] %>
у вас есть ** groupdate ** установлен камень? –
@RareFever нет Я его прокомментировал, потому что он не работает с моей базой данных dev, но работает на pg. Поэтому рекомендация заключалась в использовании наборов данных. – mGarsteck
Вы можете сделать пример под названием «Временная шкала»? dataslices - это драгоценный камень? , если да, оставьте ссылку PLS. –