Trying to override assocation find

Hey Guys, I'm stumped with something, hoping somebody can help.

Basically, I'm trying to override the default belongs_to accessor.

For example, I have an Event model, that belongs_to a Venue:

class Event < ActiveRecord::Base   belongs_to :venue

  ... end

The venue is not always set, so sometimes "event.venue" returns null. I want to be able to override "event.venue", and provide my own code that grabs the venue if it doesn't exist. I was thinking I could do something like:

def venue   if self.send(:venue) == nil     # code to fetch the venue and insert into db   else     self.send(:venue)   end end

Clearly though, this doesn't work, because self.send(:venue) just calls itself, and ruby barfs on a stack overflow from the recursion.

The workaround is to create a "get_venue" method, and always call that instead of "venue," but that seems kind of icky.

Any ideas?

Spencer