Understood. I will flip this back to the Mongoid team. So to clarify, as a matter of implementation, ORMs seeking compatibility with Rails should never use proxy objects for belongs_to or has_one associations?
On Fri, May 28, 2010 at 9:38 PM, Michael Koziarski <[email protected]>wrote: > > Mongoid uses association proxy objects. It overrides #nil? => false > > when the association is missing. However since it uses proxy > > objects, !!assocation is always true. > > This is why active record doesn't use proxy objects for nil belongs_to > and has_one associations, you can't override the boolean value of your > objects. > > > > > I have created a ticket with a patch that changes the association nil > > test to call assocation.nil? rather than use implicit coercion of the > > variable. > > These proxy objects don't follow correct ruby semantics and I'm not > entirely sure that we should take the performance hit to work around > that bug. There are bound to be other places where we use this form > and we're not going to fix all of them. > > -- > Cheers > > Koz > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Core" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<rubyonrails-core%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-core?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en.
