在Ruby中创建数组,rails3

时间:2011-02-07 02:45:28

标签: ruby-on-rails ruby ruby-on-rails-3

我正在尝试在我的应用上制作一些图表,因此我开始使用http://www.jqplot.com/index.php

它使用数组输入数据,因此我尝试在ruby中创建一些数据数组,然后我可以在javascript中打印。
@array_example = [1,2,3,4,5]在打印时不起作用,但@array_example = "[1,2,3,4,5]"可行。

无论如何,我的第一个问题是,如果我有:

<% @chart_posts = Post.where(:user_id => @profile.user.id) %>

使用这些数据创建数组的好方法(如果我想要数组中每个帖子的id,以及带有created_at的第二个数组)?

为了更清楚一点,最终的作品在印刷时需要看起来像一个阵列 即它周围必须有[个,并且,位于每个项目之间。

2 个答案:

答案 0 :(得分:3)

我不太清楚你的最终数组应该是什么样子,但我认为map应该能满足你的需要。

ids = @chart_posts.map(&:id) 
# => [1,2,3,4]

created_ats = @chart_posts.map(&:created_at) 
# => [timestamp,timestamp,timestamp,timestamp]

你也可以将它组合成一个带有地图的2D数组:

array = @chart_posts.map {|post| [post.id, post.created_at]} 
# => [[1, timestamp],[2,timestamp]]

答案 1 :(得分:1)

貌似grose php hackery ......

但加入上述人员所说的回报几个字符串:

id_array_string = @chart_posts.map(&:id).inspect 
# => "[1,2,3,4]"

timestamp_array_string = @chart_posts.map(&:created_at).inspect

# => "[timestamp,timestamp,timestamp]"