Неожиданный ответ JSON - Ruby on Rails - PullRequest
0 голосов
/ 01 мая 2018

У меня есть гистограмма, которую я пытаюсь заполнить ответом JSON. Я использую Rails 5 со встроенной функциональностью JBuilder.

Вот мой код:

def graph_data
  @customers = Customer.all
  @graph_data = {graph_type: "Customer Growth"}
  @months = {}
  x = 5
  while x >= 0
    @months[x.months.ago.strftime("%B")] = current_account.customers.where(:created_at => x.months.ago.beginning_of_month..x.months.ago.end_of_month).count
    x = x - 1
  end
  @graph_data[:months] = @months
  puts @graph_data.to_json

end

В строке puts @graph_data.to_json выводится следующий текст:

{"graph_type":"Customer Growth","months":{"November":0,"December":0,"January":0,"February":0,"March":0,"April":3}}

как я и ожидал.

Однако, когда я вывожу фактический ответ JSON в моем файле graph_data.json.jbuilder, вы получите

[["graph_type","Customer Growth"],["months",{"November":0,"December":0,"January":0,"February":0,"March":0,"April":3}]]

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

{"graph_type":"Customer Growth","months":["November":0,"December":0,"January":0,"February":0,"March":0,"April":3]}

но я не знаю, как этого добиться с помощью jBuilder.

Вот содержимое моего graph_data.json.jbuilder файла.

json.array! @graph_data

Заранее спасибо.

1 Ответ

0 голосов
/ 01 мая 2018

В вашем файле jbuilder замените

json.array! @graph_data

до

json.graph_type @graph_data[:graph_type]
json.months @graph_data[:months]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...