Hey Guys,
I’m getting a peculiar bug working with Observers and has_one
associations. When a has_one association is invoked by an Observer it
always returns null. I looked in the development.log file and the SQL
for the has_one association isn’t even being executed. On the other
hand, when I replace the has_one association with just a hand crafted
method, it does get called correctly. So the following does not work:
class Task
has_one :current_instance,
:class_name => ‘TaskInstance’,
:foreign_key => ‘task_id’,
:order => ‘start_at DESC’,
:conditions => ‘end_at IS NULL’
but when replaced with the follwoing, it does work.
def current_instance
TaskInstance.find(:first,
:conditions=>“task_id=#{self.id} AND end_at IS
NULL”,
:order=>‘start_at DESC’
)
end
I’m working with Rails 2.0.2 and the problem doesn’t affect the
belongs_to nor the has_many associations. I’d hate to replace my
lovely has_one associations with hand-crafted methods…
Sonny.