Има интересен наличен скъпоценен камък, наречен Tenacity, който изглежда прави това, което искате, използвайки t_has_one, t_has_many и t_belongs_to вместо нормалните асоциации.
Тъй като в момента има само тези отношения, той е малко ограничен и в момента се боря с много към много, но това може да ви помогне.
Вижте го тук - https://github.com/jwood/tenacity