在Rails 3(1.8.7上的測試版3)中,當在關係上調用to_json時,我得到一個循環引用異常。首先將該關係轉換爲數組,然後調用to_json工作。爲什麼我在ActiveRecord上調用to_json時出現循環引用異常:: Relation
Model.where()to_json(其中模型是在Rails任何模型3應用程序)
代碼工作::失敗
代碼。
Model.where()to_a .to_json
這可以在控制檯上重新制作。
有沒有其他人跑過來呢?這是預期的嗎?
在Rails 3(1.8.7上的測試版3)中,當在關係上調用to_json時,我得到一個循環引用異常。首先將該關係轉換爲數組,然後調用to_json工作。爲什麼我在ActiveRecord上調用to_json時出現循環引用異常:: Relation
Model.where()to_json(其中模型是在Rails任何模型3應用程序)
代碼工作::失敗
代碼。
Model.where()to_a .to_json
這可以在控制檯上重新制作。
有沒有其他人跑過來呢?這是預期的嗎?
我也碰到過這個。看起來像是在這次承諾中解決了:
http://github.com/rails/rails/commit/eb04408a20628a49296e0859425940b39a83ec63
我有同樣的問題,不能修復它,但發現瞭如何避免它,有以下幾點:
respond_to do |format|
response = @product.to_xml
format.xml { render :xml => response }
format.json { render :json => Hash.from_xml(response).to_json }
end
這裏的想法是產生響應的XML格式,然後哈希它,然後將其格式化爲JSON。
由於現在JSON格式的結果與XML格式的結果具有完全相同的數據,所以這種方法給了我更多的預期。