2013-04-04 14 views
0

我使用morris.js在我的应用程序中显示图表。在我的控制我的代码:如何从旧符号转换为新的ruby 1.9散列语法?

控制器

@users_count = User.group('DATE(created_at)').count.map do |d, c| {date: d, count: c} end 

由此我得到:

[{:date=>'2013-04-01', :count=>1}, {:date=>'2013-04-02', :count=>1}] 

当我尝试这个传递给morris.js因为它没有按数据选项没有工作。我需要将其转换为:

[{date: '2013-04-01', count: 1}, {date: '2013-04-02', count: 1}] 

然后它的工作。

我该怎么做?

+1

这与旧vs新哈希语法无关。您不能将输出转换为新的语法。它将始终使用旧的语法。莫里斯预计可能是JSON字符串。你可以使用'.to_json'来获得它。所以,Arjan的回答是正确的。这是他的回答缺乏的解释。 – Mischa 2013-04-04 15:00:04

+0

谢谢@Mischa。我更新了你的解释。 – Arjan 2013-04-04 17:56:21

回答

3

这与旧vs新散列语法无关。您不能将输出转换为新的语法。它将始终使用旧的语法。莫里斯预计可能是JSON字符串。您可以使用.to_json获取它。

对您的结果使用to_json并将其传递给morris。

@users_count = User.group('DATE(created_at)').count.map { |d, c| {date: d, count: c} }.to_json 
+0

它像一个魅力工作,谢谢! – 2013-04-04 16:09:33

相关问题