J'essaie de faire de la date une chaîne qui utilise habituellement un simple
date.to_s
mais cela ne fonctionne pas, j’ai essayé d’utiliser la coercition sur les chaînes Javascript.
String(date)
mais cela m'a juste donné des années. Ceci est mon code.
<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>
C'est ce qu'il retourne.
Totalement coincé ici.
Les données ressemblent à ceci dans le navigateur
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
});
Réponses:
1 pour la réponse № 1Comme les dates ne sont pas entre guillemets, Javascript les considère comme des entiers, de même que la soustraction entre l'année et le mois et la date. Dans votre modèle, mettez les guillemets autour de la date:
<% metrics_history(current_user.oauth_token, "page_impressions", 30).each do |k,v|%>
{ date: "<%= k%>" , value: <%= v %>},
0 pour la réponse № 2
Cela a fait le tour
{ date: "<%= raw k%>" , value: <%= v %>}