我正在返回JSON中用户字段的响应。我正在创建JSON,如下所示。Ruby hash返回奇怪的值
def user_response(users)
users_array = []
users.each do |user|
uhash = {}
uhash[:id] = user.id,
uhash[:nickname] = user.nickname,
uhash[:online_sharing] = user.online_sharing,
uhash[:offline_export] = user.offline_export,
uhash[:created_at] = user.created_at,
uhash[:app_opens_count] = user.app_opens_count,
uhash[:last_activity] = user.last_activity,
uhash[:activity_goal] = user.activity_goal,
uhash[:last_activity] = user.last_activity,
uhash[:region] = user.region
users_array << uhash
end
users_array
end
但是,这个回答很奇怪。散列中的:id
键具有所有字段的数组不知道为什么。
{
"nickname": "adidas",
"online_sharing": null,
"offline_export": null,
"created_at": "2016-08-26T09:03:54.000Z",
"app_opens_count": 29,
"last_activity": "2016-08-26T09:13:01.000Z",
"activity_goal": 3,
"region": "US",
"id": [
9635,
"adidas",
null,
null,
"2016-08-26T09:03:54.000Z",
29,
"2016-08-26T09:13:01.000Z",
3,
"2016-08-26T09:13:01.000Z",
"US"
]
}
错误在下面提到,但它不是正确的方法来写这个方法 –
问题在下面解释,但如果它不清楚为什么'uhash [:id]'的值是一个数组,如果'uhash = {}; uhash [:id] = 1,2,3; uhash#=> {:id => [1,2,3]}'。在不同的行上分配'1,','2,和'3是没有区别的。 –