My guess is that Rails is lost because the STI with non-standard fks
is confusing. It's able to navigate things better once you have the
instance back. You might give Rails a little help if you have a
require 'registration' at the top of your event.rb. That should help
rails find the STI subclasses before you try your Event.find.
Have you checked the log after running the initial query to see if it
is trying to do the joins?
I think one implication of your model is that only Users get to have
Events (at least Rails might think so). Is that true?