莫里斯线图日期拒绝在 rails 应用程序中强制转换为字符串

Morris line graph date refuses to coerce to string in rails app

我正在尝试将日期设置为通常使用简单

的字符串
date.to_s

但它不起作用我尝试使用 Javascript 字符串强制。

String(date)

但这只给了我很多年。这是我的代码。

<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>

就是这样returns。

完全卡在这里。

数据在浏览器中看起来像这样

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
                            });

成功了

{ date: '<%= raw k%>' , value: <%= v %>}

因为日期不在引号中,Javascript 将它们视为整数,年月日之间的减法也是如此。在您的模板中,在日期周围加上引号:

 <% metrics_history(current_user.oauth_token, 'page_impressions', 30).each do |k,v|%>
{ date: "<%= k%>" , value: <%= v %>},