試圖瞭解這種行爲對Rails 3:如果我這樣做爲什麼ActiveRecord查詢在一個對象數組上工作,而不是另一個?
:
@comments_1 = @article.comments
我可以運行的ActiveRecord類型的查詢上@ comments_1,如@comments_1.find(1)
,並得到一個記錄/回報對象。
=> #<Comment id: 1, body: "lorem ipsum ...">
然而,這樣的:
@comments_2 = Comment.all
不接受這樣的查詢。 @comments_2.find(1)
返回:
=> [#<Comment id: 1, body: "lorem ipsum …">, … ]:find(1)]
(1)爲什麼這些不同的輸出? (2)如何讓@ comments_2數組的行爲方式與@ comments_1相同?
感謝spickermann和@mbratch - 我懷疑像這樣的事情正在發生,但是拋出我的是'@ comments_1.class'和'@ comments_2.class'都返回了「Array」。 我想我的問題的肉是:我怎樣才能從數據庫中獲取所有評論作爲一個對象,我可以運行AR查詢? – Michael
只是'Comment.scoped'或只是'Comment'取決於你想要做什麼。 – spickermann
謝謝! 'Comment.scoped'完成了這個訣竅。 – Michael