Jian Lin
2010-May-23  06:10 UTC
why story.votes return Array, but story.votes.create works?
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?
-- 
Posted via http://www.ruby-forum.com/.
-- 
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
Frederick Cheung
2010-May-23  08:09 UTC
Re: why story.votes return Array, but story.votes.create works?
On May 23, 7:10 am, Jian Lin <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> 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> 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? > -- > Posted viahttp://www.ruby-forum.com/. > > -- > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/rubyonrails-talk?hl=en.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Jian Lin
2010-May-23  08:37 UTC
Re: why story.votes return Array, but story.votes.create works?
Frederick Cheung wrote:> On May 23, 7:10�am, Jian Lin <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> 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 > > Frednot 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> -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.