Sto cercando di rendere la data su una stringa che di solito usa un semplice
date.to_s
ma non funziona, ho provato a usare la coercizione stringa JavaScript.
String(date)
ma questo mi ha dato solo anni. Questo è il mio codice
<script>
Morris.Line({
element: "line",
data: [
<% metrics_history(current_user.oauth_token, "page_impressions", 30).each do |k,v|%>
{ date: String(<%= k%>) , value: <%= v %>},
<% end %>
],
xkey: "date",
ykeys: ["value"],
labels: ["Value"],
parseTime: false
});
</script>
Questo è ciò che restituisce.
Totalmente bloccato qui.
I dati sono come questo nel browser
Morris.Line({
element: "line",
data: [
{ date: String(2015-06-18) , value: 0},
{ date: String(2015-06-19) , value: 0},
{ date: String(2015-06-20) , value: 1},
{ date: String(2015-06-21) , value: 0},
{ date: String(2015-06-22) , value: 23},
{ date: String(2015-06-23) , value: 0},
{ date: String(2015-06-24) , value: 11},
{ date: String(2015-06-25) , value: 1},
{ date: String(2015-06-26) , value: 36},
{ date: String(2015-06-27) , value: 41},
{ date: String(2015-06-28) , value: 1},
{ date: String(2015-06-29) , value: 11},
{ date: String(2015-06-30) , value: 44},
{ date: String(2015-07-01) , value: 0},
{ date: String(2015-07-02) , value: 35},
{ date: String(2015-07-03) , value: 0},
{ date: String(2015-07-04) , value: 0},
{ date: String(2015-07-05) , value: 26},
{ date: String(2015-07-06) , value: 68},
{ date: String(2015-07-07) , value: 88},
{ date: String(2015-07-08) , value: 10},
{ date: String(2015-07-09) , value: 0},
{ date: String(2015-07-10) , value: 0},
{ date: String(2015-07-11) , value: 201},
{ date: String(2015-07-12) , value: 0},
{ date: String(2015-07-13) , value: 0},
{ date: String(2015-07-14) , value: 10},
{ date: String(2015-07-15) , value: 0},
{ date: String(2015-07-16) , value: 0},
{ date: String(2015-07-17) , value: 0},
],
xkey: "date",
ykeys: ["value"],
labels: ["Value"],
parseTime: false
});
risposte:
1 per risposta № 1Poiché le date non sono tra virgolette, Javascript le vede come numeri interi e quindi la sottrazione tra l'anno e il mese e la data. Nel modello, inserisci le virgolette sulla data:
<% metrics_history(current_user.oauth_token, "page_impressions", 30).each do |k,v|%>
{ date: "<%= k%>" , value: <%= v %>},
0 per risposta № 2
Questo ha fatto il trucco
{ date: "<%= raw k%>" , value: <%= v %>}