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