我試圖實現自動完成,讓用戶從2種不同類型的模型列表中選擇。如何在rails3中調用to_json時包含類名?
這是我的控制器的外觀:
def ac
arr = []
arr << Foo.all
arr << Bar.all
render json: arr.to_json
end
這使得:
[[{"id":1, "name":"foo name"}], [{"id":1, "name":"bar name"}]]
如何包含類名和得到的東西是這樣的:
[
[{"id":1, "name":"foo name", "class_name":"Foo"}],
[{"id":1, "name":"bar name", "class_name":"Bar"}]
]
?
我想你忘記大括號圍繞屬性。除此之外,你有'ActiveRecord :: Base.include_root_in_json'設置爲'false'嗎?如果它是'true',那麼AR包含類名(強調並且解除消除,但是)作爲json散列的根元素。 – 2012-03-01 10:04:42
@ KL-7對json的有效性沒有太多關注。已經閱讀了關於'ActiveRecord :: Base.include_root_in_json',但我認爲這是非常骯髒的方法,因爲它改變了應用程序範圍的設置。 – 2012-03-01 10:10:57
最好讓你的問題在問題中有效,因爲他們現在沒有意義,這使得你很難理解你的意思。關於'include_root_in_json',我認爲它默認設置爲'true'。你自己改變了嗎? – 2012-03-01 10:13:58