【问题标题】:Unexpected JSON response - Ruby on Rails意外的 JSON 响应 - Ruby on Rails
【发布时间】:2018-04-30 22:18:02
【问题描述】:

我有一个条形图,我试图用 JSON 响应填充它。我正在使用带有内置 JBuilder 功能的 Rails 5。

这是我的代码:

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}}

正如我所料。

但是,当我在 graph_data.json.jbuilder 文件中输出实际的 JSON 响应时,输出是

[["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

提前致谢。

【问题讨论】:

    标签: ruby-on-rails json ruby-on-rails-5


    【解决方案1】:

    在你的 jbuilder 文件中,替换

    json.array! @graph_data
    

    json.graph_type @graph_data[:graph_type]
    json.months @graph_data[:months]
    

    【讨论】:

      猜你喜欢
      • 2012-01-16
      • 2017-07-30
      • 2018-02-11
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-28
      相关资源
      最近更新 更多