在Morris.js图表​​中显示Rails Post的网页浏览量

时间:2013-10-16 19:50:21

标签: ruby-on-rails ruby-on-rails-4 morris.js

我为模糊的标题

道歉

使用rails,我试图在图表中显示帖子名称和Post所拥有的综合浏览量之间的关系。为了实现这一点,我正在使用印象派宝石(https://github.com/charlotte-ruby/impressionist),这是非常有用的,Morris.js(http://www.oesmith.co.uk/morris.js/)用于图表和图形。

我正试图在Post的索引页面上显示图表

def index
  @posts = Post.all
end

要查找帖子上的页面浏览量,请使用

<%= @post.impressionist_count =%>

不幸的是,我在使用Morris.js实现这一点时遇到了麻烦。

这是我正在使用的morris js,我在'ykeys'中尝试了很多东西,但无法让它工作。也许我可以通过使用辅助方法更好地实现这一目标?我对红宝石相对较新(2个月),似乎我的问题总是得到解答。

new Morris.Line({
  element: 'post_graph',
    data: $("#post_graph").data('posts'),
    xkey: 'created_at',
    ykeys: [<%= @post.impressionist_count %>],
    labels: ['Page Views']
  });

和posts / index.html.erb

<%= content_tag :div, "", id: "post_graph", data: {posts: @posts} %>

提前感谢所有帮助

的人

1 个答案:

答案 0 :(得分:0)

从未触及莫里斯或印象派,但我认为你需要这样做:

<%= content_tag :div, "", id: "post_graph", data: {posts: @post.impressionist_count.to_json} %>

new Morris.Line({
  element: 'post_graph',
  data: $("#post_graph").data('posts'),
  xkey: 'created_at',
  ykeys: ['impressions'],
  labels: ['Page Views']
});

虽然我可能不会将JSON放在DOM中并将其更改为:

<%= content_tag :div, "", id: "post_graph" %>

和这个JS在同一个视图文件中:

new Morris.Line({
  element: 'post_graph',
  data: <%= @post.impressionist_count.to_json %>,
  xkey: 'created_at',
  ykeys: ['impressions'],
  labels: ['Page Views']
});

不确定ykeys是否应命名为impressions,请将其更改为相关的字段名。