Det finns en intressant pärla tillgänglig som heter Tenacity som verkar göra vad du vill, med hjälp av t_has_one, t_has_many och t_belongs_to snarare än de vanliga associationerna.
Eftersom det för närvarande bara har dessa relationer är det lite begränsat och jag kämpar för närvarande med många-till-många, men det kan hjälpa dig.
Kolla in det här - https://github.com/jwood/tenacity