Como os helpers de relacionamento Rails ActiveRecord permitem métodos como `user.groups.new`?

No Rails, criei um Modelo que recupera usuários de um banco de dados LDAP, e não do ActiveRecord. Agora estou tentando integrar meus modelos ActiveRecord com os modelos baseados em LDAP, portanto, estou escrevendo métodos em meus modelos que emulam alguns métodos comuns do ActiveRecord.

Um dos métodos que estou tentando emular é aquele que normalmente é criado pelo has_many através do relacionamento no ActiveRecord. No ActiveRecord, esse relacionamento permitiria o seguinte:

user = User.first
groups = user.groups # == Array of Groups
groups << Group.create(name: "Test") # How does Rails allow this?

Como exatamente o Rails permite isso? Eu tentei dinamicamente atribuir métodos para a instância de matriz retornada por user.groups, mas parece não haver nenhuma maneira de fazer com que esses métodos fiquem cientes de qual registro de usuário a matriz foi criada. (Então eles podem atribuiruser_id no novo registro de relacionamento.) O que estou perdendo?

questionAnswers(2)

yourAnswerToTheQuestion