In Ruby on Rails, say a Story object can “has_many” Vote objects (a
story is voted “hot” by many users).
So when we do a
s = Story.find(:first)
“s” is a Story object, and say
s.votes
returns “[]”
and
s.votes.class
returns “Array”
So clearly, s.votes is an empty Array object.
At this time, when
s.votes.create
is called, it actually invokes a method of the Vote class? How come an
Array class object can invoke a Vote class method?
On May 23, 7:10 am, Jian L. [email protected] wrote:
So clearly, s.votes is an empty Array object.
Actually it’s not. It’s an AssociationProxy object pretending to be an
instance of Array
Fred
Frederick C. wrote:
On May 23, 7:10�am, Jian L. [email protected] wrote:
So clearly, s.votes is an empty Array object.
Actually it’s not. It’s an AssociationProxy object pretending to be an
instance of Array
Fred
not like this?
irb(main):010:0> class Foo
irb(main):011:1> def class
irb(main):012:2> return Fixnum
irb(main):013:2> end
irb(main):014:1> end
=> nil
irb(main):015:0> f = Foo.new
=> #Foo:0x4799ce8
irb(main):016:0> f.class
=> Fixnum
irb(main):017:0>