In Ruby on Rails, why will story.votes return an empty Array object, but story.votes.create will act

Posted by Jian Lin on Stack Overflow See other posts from Stack Overflow or by Jian Lin
Published on 2010-05-23T05:58:21Z Indexed on 2010/05/23 6:10 UTC
Read the original article Hit count: 298

Filed under:
|
|

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?

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about model