È disponibile una gemma interessante chiamata Tenacity che sembra fare quello che vuoi, usando t_has_one, t_has_many e t_belongs_to piuttosto che le normali associazioni.
Poiché attualmente ha solo quelle relazioni, è un po' limitato e attualmente sto lottando con molti-a-molti, ma questo potrebbe aiutarti.
Dai un'occhiata qui - https://github.com/jwood/tenacity