Hi,
I came across a peculiar problem with has_one association in
combination with an Object method override. Can somebody explain to me
what is going on?
Here is how it goes:
I have a 'has_one' relationship between Supplier and Account, like in
the example of the has_one example used in Rails Guides.
Supplier:
class Supplier < ActiveRecord::Base
validates :name, :presence => true
has_one :account
nilify_blanks
end
Account:
class Account < ActiveRecord::Base
belongs_to :supplier
validates :supplier_id, :presence => true
nilify_blanks
def foo
puts 'in account'
end
def to_s
puts 'in account'
end
end
I also have a method foo on Object as follows:
class Object
def foo
puts 'in object'
end
end
When I call:
Supplier#account#to_s I get 'in account'
When I call:
Supplier#account#foo I get 'in object'
whereas I would expect it to print 'in account'
Does anybody have any clue why does this happen? Is this a bug in
Rails ActiveRecord?
Thanks in advance
P.S. If you want, you can get a full fledged application that
demonstrates the problem from here:
git://github.com/pmatsinopoulos/test_association_and_object_method_override.git
--
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.