Получить хеш-значение Rails / Chart.JS

1

Привет, я кодирую генератор формы в RoR, и я хочу сгенерировать несколько диаграмм по любому из моих вопросов. Для моего вопроса x у меня есть результаты

 {"answer1"=>2, "answer2"=>2, "answer3"=>1, ...} 

Я хочу знать, как я могу получить доступ ко вторым данным (числам) и вообще как установить поля "label" и "data" в скрипте Chart.js:

 answer= [<% for rep in @polls4 %>
         "<%= rep.nom %>",
         <% end %>];
var myChart = new Chart(ctx, {
type: 'bar',
data:  {
    labels:answer,
    datasets: [{
        label: '# of Votes',
        data: ?,
        backgroundColor: [

Мой @polls4 определен в моем контроллере

 @polls4 = @polls.where(question_id: 4).group("nom")

Спасибо

  • 0
    Вы хотите метки = ['answer1', 'answer2', ...] и data = [2, 2, ...]. Я понял правильно?
  • 0
    @hamdi Хамди Да, вот и все
Теги:
chart.js
charts

1 ответ

1
Лучший ответ

Вместо добавления цикла в JS инициализируйте переменную polls как массив идентификаторов, таким образом вы избегаете их собирать и добавляете Ruby-логику в JS-код:

@polls4 = @polls.where('question_id = ?', 4).pluck(:nom)

По мере того как вы группируете, вы получаете этот хэш данных о ключах/значениях, используя pluck, вы получаете только идентификатор каждого опроса:

Итак, график:

var answer = "<%= @polls4 %>";
var myChart = new Chart(ctx, { 
  ...
});

Я бы рекомендовал вам переименовать переменную @polls4 в нечто более описательное и избежать использования чисел в именах переменных.

  • 0
    Спасибо @sebastianPalma!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню