Yes, you can do session ||= (...).

About singleton - I don't like singletons and I'd rather create drug_site in application_controller as memoized field.