Мне нужно отобразить массив Ruby в очень определенном формате для шаблона erb. Это потому, что я использую JQcloud для создания облаков слов с использованием JQuery и, по-видимому, придирчив к форматированию массива.Как отобразить массив Ruby как массив JavaScript в шаблоне ERB
Вот так, что JQcloud требует массива JS для форматирования:
var word_array = [
{text: "Lorem", weight: 15},
{text: "Ipsum", weight: 9},
{text: "Dolor", weight: 6},
{text: "Sit", weight: 7},
{text: "Amet", weight: 5}
// ...as many words as you want
];
Так что я создал в моем контроллере два массива, один массив слов, чтобы построить свое облако, а другой массив веса для каждого слова.
ruby_word_array = ["Lorem","Ipsum","Dolor","Sit","Amet"]
ruby_weight_array = [15,10,13,8,4]
Мне нужно преобразовать мои два массива Ruby таким образом, чтобы они отображались правильно с помощью erb. До сих пор я придумал:
var wordArray = <%= raw @word_array.map{|a, i| {text: @word_array[0], weight: 15} } %> # I just hard coded the weight for simplicity
Это дает мне то, что это близко, но не достаточно близко, и он заканчивает отформатирован следующим образом:
var wordArray = [{:text=>"Lorem", :weight=>15}, {:text=>"Ipsum", :weight=>15}]
Я действительно просто нужно знать, как изменить мой последний пример для рендеринга в синтаксисе хэша стиля Python {key: "value"},{key_2: "value_2"}
Это честно сложно, и я в тупике. Библиотека, которую я использую для этого, называется JQcloud, и у нее есть камень Ruby, который я включил в это приложение Rails. Here is a link.
Это самый простой способ сделать это. Возможно, вам потребуется добавить «json» в начало файла, если вы не используете Rails. Кроме того, чтобы перейти от строки json к ruby, вы можете сделать JSON.parse (json_string) –
Правильно. json lib потребуется автоматически в Rails, но в противном случае вам потребуется его вручную. – tompave
Так что я уже давно пытался to_json без успеха, но потом понял, что мне нужно преобразовать свой Ruby-массив в массив хэшей и THEN вызвать to_json. Теперь это работает. – FluffyKittens