2012-07-09 38 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