假設我有一個博客應用程序。每篇文章都有評論。是給定集合中的對象嗎?
所以,我的意見在「Post.comments」
集合比方說,我有一個名爲對象「this_comment」
有一個神奇的關鍵字或用Ruby構建,這樣我可以測試「Post.comments」中的'this_comment'?
換句話說,我想知道「this_comment」是否爲集合「Post.comments」的成員。我可以做一個'找到'並得到我的答案,但它似乎是那種Ruby可能通過一個很酷的關鍵字,如「如this_comment.in(Post.comments)」容易
我想如果不是,我可以寫我自己的「評論」方法(或'is_in'方法,因爲我認爲'是'是保留關鍵字)。
謝謝!
甜。正是我在找的東西。 – jefflunt 2010-02-18 20:19:31
'comments'是一個數組,還是隻是像一個嘎嘎聲? – 2010-02-18 22:06:42
如果它是一個'named_scope'或者一個關聯就像一個嘎嘎聲。如果您調用通常在數組上調用的方法,它應該執行查詢並將其轉換爲數組。但是,除非需要爲查詢添加特殊性,否則它不會這樣做。上述代碼在調用'exists?'方法之前不會執行SQL查詢。 'comments'只是返回一個代理對象。但是'Post.comments.each'就像'comments'是一個數組一樣工作。 – 2010-02-18 22:43:35