2012-07-09 29 views
0

我的ActiveRecord沒有說實話。見自己:ActiveRecord在說謊嗎?

> User.posts.class 
    => Array 
> User.posts.all.class 
    => Array 
> a = Array.new 
> a.class 
=> Array 
> a.all 
    NoMethodError: undefined method `all' for []:Array 

沒有Array#all方法,所以User.posts不能是Array。這裏發生了什麼?

回答

1

Ruby有單例方法的概念。這意味着對象可以改變他們的類定義的行爲。閱讀this