我正在尝试在我的应用上制作一些图表,因此我开始使用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
的第二个数组)?
为了更清楚一点,最终的作品在印刷时需要看起来像一个阵列
即它周围必须有[
个,并且,
位于每个项目之间。
答案 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]"