Panayotis Matsinopoulos
2011-Nov-17 07:47 UTC
has_one association problem together with Object method override
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 rubyonrails-core@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-core+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en.