Создание массивов в Ruby, rails3 - PullRequest
2 голосов
/ 07 февраля 2011

Я пытаюсь сделать несколько диаграмм в своем приложении, и поэтому я начал использовать 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) %>

Какой хороший способ использовать эти данные для создания массива (если я хочу идентификатор каждого сообщения в массиве и второй массив с created_at)?

Чтобы быть немного более понятным, конечный массив при печати должен выглядеть как массив.
т.е. он должен иметь [ вокруг него и , между каждым элементом.

Ответы [ 2 ]

3 голосов
/ 07 февраля 2011

Мне не очень понятно, как должен выглядеть ваш окончательный массив, но я думаю, map должен дать вам то, что вам нужно.

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

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

Вы также можете объединить это в один двумерный массивс картой также:

array = @chart_posts.map {|post| [post.id, post.created_at]} 
# => [[1, timestamp],[2,timestamp]]
1 голос
/ 07 февраля 2011

Похоже на хакерство grose php ...

но присоединяйтесь к тому, что парни из вышеупомянутых сказали, чтобы вернуть пару строк:

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

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

# => "[timestamp,timestamp,timestamp]"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...