使用rails将哈希传递给js以生成图表

时间:2014-05-26 10:01:20

标签: javascript ruby-on-rails

我试图生成一个图表,其中包含每天在我网站上注册的新用户的数量。

我使用带有变量来填充图表的js,例如:

var pageviews = [
                    [1, randValue()],
                    [2, randValue()],
                    [3, 2 + randValue()],
                    [4, 3 + randValue()],
                    [5, 5 + randValue()],
                    [6, 10 + randValue()],
                    [7, 15 + randValue()],
                    [8, 20 + randValue()],
                    [9, 25 + randValue()],
                    [10, 30 + randValue()],
                    [11, 35 + randValue()],
                    [12, 25 + randValue()],
                    [13, 15 + randValue()],
                    [14, 20 + randValue()],
                    [15, 45 + randValue()],
                    [16, 50 + randValue()],
                    [17, 65 + randValue()],
                    [18, 70 + randValue()],
                    [19, 85 + randValue()],
                    [20, 80 + randValue()],
                    [21, 75 + randValue()],
                    [22, 80 + randValue()],
                    [23, 75 + randValue()],
                    [24, 70 + randValue()],
                    [25, 65 + randValue()],
                    [26, 75 + randValue()],
                    [27, 80 + randValue()],
                    [28, 85 + randValue()],
                    [29, 90 + randValue()],
                    [30, 95 + randValue()]
                ];

我有一个用户表,我需要创建一个哈希分组并按日期计算上个月的用户。

所以:

User.group('date(created_at)').count

等...第一个值是该月的某一天,第二个值是当天提交注册的用户数。

当我有哈希时,如何将哈希传递给JS?

2 个答案:

答案 0 :(得分:0)

您可以尝试as_json并将其填充到数据属性中:

<div id="page_views" data-users="<%= @user_registrations.as_json %>"></div>

答案 1 :(得分:0)

假设我通过以下方式生成数据:

u = User.group("EXTRACT(DAY FROM created_at)").count.to_a
#=> [[26.0, 2], [27.0, 2]]

如果您的脚本位于.erb文件中,我可以直接将此值传递给您的js变量(基于您上面的示例输入)。

像这样:

var pageviews = <%= u %>;