0

我为模糊的标题道歉

使用rails,我试图在图表中显示帖子名称与帖子拥有的页面浏览量之间的关系。为了做到这一点,我使用了印象派 gem ( https://github.com/charlotte-ruby/impressionist ) 和 Morris.js ( http://www.oesmith.co.uk/morris. js/ ) 用于图表和图形。

我正在尝试在帖子的索引页面上显示图表

def index
  @posts = Post.all
end

为了找到帖子的页面浏览量,您使用

<%= @post.impressionist_count =%>

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

这是我正在使用的 morris js,我在“ykeys”中尝试了很多东西,但无法让它工作。也许我可以通过使用辅助方法更好地做到这一点?我对 ruby​​ 比较陌生(2 个月),我的问题似乎总是在这里得到解答。

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

和帖子/index.html.erb

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

提前感谢所有提供帮助的人

4

1 回答 1

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,将其更改为相关的字段名。

于 2013-10-16T21:45:02.523 回答