【发布时间】:2015-04-03 00:15:03
【问题描述】:
尝试在我的视图中显示来自 json 文件的信息时遇到问题。我已经解析过了。
这是我的错误:
When assigning attributes, you must pass a hash as an argument.
Extracted source (around line #23):
21 # @new_member.constructors = [driver['Constructors'][0]['name']]
22 # @new_member.points = [driver['points']]
23 @new_member.from_json(json)
@members << @new_member
end
# @new_member.constructors = [driver['Constructors'][0]['name']]
# @new_member.points = [driver['points']]
@new_member.from_json(json)
@members << @new_member
end
这是我的控制器:
require 'open-uri'
require 'json'
url = "http://ergast.com/api/f1/2014/driverStandings.json"
data = JSON.parse(open(url).read)
standings = data['MRData']['StandingsTable']['StandingsLists'][0]['DriverStandings']
@members = Array.new
standings.each do |driver|
json = standings.to_json
@new_member = Member.new
# @new_member.position = [driver['position']]
# @new_member.givenName = [driver['Driver']['givenName']]
# @new_member.familyName = [driver['Driver']['familyName']]
# @new_member.constructors = [driver['Constructors'][0]['name']]
# @new_member.points = [driver['points']]
@new_member.from_json(json)
@members << @new_member
如果我取消注释控制器中的行并删除这些行
@new_member.from_json(json)
json = standings.to_json
我在视图中得到以下内容
姓名:[“刘易斯”]
姓名:["Nico"]
那个视图真的很接近但不是我需要的,我需要没有[“”]的数据, 所以我需要的视图是这样的:
1 刘易斯·汉密尔顿梅赛德斯 384
提前致谢。
【问题讨论】:
-
小评论。您为我们提供了太多信息,无法帮助解决建议如何显示 json 的问题。试试 'awesome_print' gem
-
对不起,我只是尽量说清楚。我能用那个宝石做什么?
-
您基本上已经为我们提供了您的应用程序的转储。请尝试将问题缩小到具体问题。您似乎有多个问题:您在解析 JSON 时遇到问题吗?为视图组装数据?为数据设计视图?请限制您的问题并将您的代码精简到出现问题的最低限度。
-
抱歉,我已经编辑了答案并尝试减少一点。我的问题是上面可以看到的错误。
-
json变量中有什么内容?
标签: ruby-on-rails ruby json parsing