Há uma gem interessante disponível chamada Tenacity que parece fazer o que você quer, usando t_has_one, t_has_many e t_belongs_to ao invés das associações normais.
Como atualmente só tem essas relações, é um pouco limitado, e atualmente estou lutando com muitos para muitos, mas isso pode ajudá-lo.
Confira aqui - https://github.com/jwood/tenacity