Как помощники по отношениям Rails ActiveRecord допускают такие методы, как `user.groups.new`?

В Rails я создал Модель, которая извлекает пользователей из базы данных LDAP, а не из ActiveRecord. Сейчас я пытаюсь интегрировать свои модели ActiveRecord с моделями на основе LDAP, поэтому я пишу методы в своих моделях, которые эмулируют некоторые распространенные методы ActiveRecord.

Один из методов, которые я пытаюсь эмулировать, это метод, который обычно создается отношением has_many through на ActiveRecord. В ActiveRecord это отношение позволило бы следующее:

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

Как именно Rails позволяет это? Я пытался динамически назначать методы экземпляру массива, возвращенному user.groups, но, похоже, нет никакого способа сообщить тем методам, из какой пользовательской записи был создан массив. (Так они могут назначитьuser_id на новой записи отношений.) Что мне не хватает?

Ответы на вопрос(2)

Ваш ответ на вопрос