2015-09-24 42 views
-3

我有一個叫做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

我試圖合併法,教師[「學生」] =學生 – delpha

+0

合併方法請問concatination但我還是想json文件裏面的「學生」變量不僅僅是合併兩個哈希 – delpha

+0

你需要提供更多的代碼(編輯你的文章)。 – p0rter

回答

0

究竟你在JSON會。如果你有teacher對象和students對象,使這個對象:

{ teacher: teacher, students: students } 
+0

但我希望學生json在教師的內部,並指定「學生」 – delpha

+1

這不是你的「我想要的迴應是類似於」JSON節目。請在你的問題中確切。 – Amadan

+0

確定修改爲'like':) – delpha

1

teacher.as_json.merge(students: (students.count > 1 ? students.as_json : students.first.as_json))

+0

僅當有一名學生時改變數據結構可能會導致比解決問題更多的問題。 – ReggieB

+0

我的情況只是其中的一種,而不是兩種。這個問題和答案之間有一個小小的誤解,但是,這個答案回答了我的問題 – delpha