我有一个名为teacher
的对象和另一个名为students
的对象。我试图在控制器中将它们作为json响应返回,我希望响应像
{'teacher': {'first_name': 'adam', 'last_name': 'smith'}, 'students': [{'id':'5', 'age' :15}, {'id':'8', 'age' :18}]}
或在一对一关系的情况下(一名教师有一名学生):
{'teacher': {'first_name': 'adam', 'last_name': 'smith'}, 'students':{'id':'8', 'age' :18}}
重点是返回一个连接的json响应,其中一个对象出现在另一个对象
中我尝试了teacher.as_json.merge(students.as_json)
,但这并没有将学生对象嵌入教师中。它只是附加数据
我在一篇文章中看到teacher['students'] = students
应该有效,但我总是出错:can't write unknown attribute students
答案 0 :(得分:1)
teacher.as_json.merge(students: (students.count > 1 ? students.as_json : students.first.as_json ))
答案 1 :(得分:0)
完全按照JSON的说法完成。如果您有teacher
对象和students
对象,请渲染此对象:
{ teacher: teacher, students: students }