Мне нужно вывести массив объектов ruby в JSON. Мне нужно будет найти элемент в объекте JSON по идентификатору, поэтому я считаю, что лучше всего, чтобы идентификатор являлся ключом каждого объекта. Эта структура имеет наибольшее значение для меня:
{
"1": {"attr1": "val1", "attr2": "val2"},
"2": {"attr1": "val1", "attr2": "val2"},
"3": {"attr1": "val1", "attr2": "val2"}
}
Таким образом, я могу легко вызвать объект json, например console.log(json_obj[id].attr1)
Проблема в том, что я не совсем уверен, как построить это в ruby. Это насколько я получил:
# in ruby
@book_types = []
BookType.all.each do |bt|
@book_types << {bt.id => {:attr => bt.attr}}
end
@book_types = @book_types.to_json
// In JS
var bookTypes = JSON.parse('<%=raw @book_types %>');
2 вопроса: Как я могу построить это в ruby? Есть ли лучший способ выполнить то, что я делаю?
Также просто обратите внимание, что я строю это на платформе Rails
Спасибо!