あなたのコードの問題は、正しいデータ形式をline_chart
に渡していないことです。このように、データは、ハッシュの形式である必要があり折れ線グラフを描画するには:
<%= line_chart {"2016-05-21 23:50:40 UTC"=>20, "2016-05-21 23:50:57 TC"=>23} %>
{「2016年5月21日午後11時50分40秒UTC」=> 20、「2016年5月21日を23:50:57 UTC "=> 23}
上記の例では、ハッシュのキーとして日付(文字列)が表示され、値(整数)は20と23です。 あなたの場合はハッシュが必要ですここで、キーはハッシュの日付と値で、最大、最小または現在の温度です。 { "DATE_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線でプロットを得ました。
![enter image description here](https://i.stack.imgur.com/8MIQ5.png)
Iは、キー日付および値属性[MAX、MIN、現在] 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は宝石ですか?もしそうなら、リンクを残す。 –