因此,在過去的幾個小時裏,我一直在靠牆敲打我的頭部,試圖獲得它。另外,當我知道下面的事情名稱時,我會更改問題的名稱。Rails - 返回嵌套屬性的所有值,而不僅僅是'指針'
第一個問題,這叫什麼?從數據庫返回的#<Comment:0x007fda3aaeb7c8>
。
其次,我試圖返回(呈現json)包含子註釋的評論。
事情是這樣的:
[
{
id: 1,
title:'title',
body:'body'
},
{
"#< Comment:0x007fda3b3517f0>": {},
"#< Comment:0x007fda3b3517f0>": {},
}
]
如何返回這些評論的價值?當我把他們在控制檯它顯示了他們的屬性和值,就像這樣:
puts comments[0][1]
{#<Comment id: 17, body: "Another Reply Test", created_at: "2016-08-20 04:05:16", updated_at: "2016-08-20 04:05:16", parent_id: 13, user_id: 54>=>{}, #<Comment id: 18, body: "Another Reply Test", created_at: "2016-08-20 04:05:16", updated_at: "2016-08-20 04:05:16", parent_id: 13, user_id: 54>=>{}}
但如果我嘗試對它們進行修改的話 - 像to_a或to_json - 它只是打擊了(因爲缺少一個更好的項)像這樣:
puts comments[0][1].to_a
#<Comment:0x007fda3b1911b8>
{}
#<Comment:0x007fda3b190fd8>
{}
我使用Postgres的,和我使用closure_tree的hash_tree到的意見進行排序。
任何建議將非常感激,尤其是對第一個問題。
編輯: 的DEF索引返回的意見:
def index
if request.headers["type"] == 'music'
comments = Comment.where("song_id = ?", request.headers["id"]).hash_tree.to_a
comments.each do |comment|
puts comment[1] #shows all attributes and values
puts comment[1].to_a #blows up
puts comment[1].to_s #works
end
end
if comments
render json: {status:200, success:true, comments:comments}
else
render json: {status:404, success:false}
end
end
唉唉,好吧,谷歌搜索我的出路可能是不可能的。這只是我在Postman中得到的結果,我不相信它們是實際的字符串,因爲這些投入是可行的。另外,to_s確實有用,你知道他們爲什麼沒有完全渲染,只顯示它們的指針嗎?我更新問題以顯示它是如何呈現的。 –