Как помощники по отношениям 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
на новой записи отношений.) Что мне не хватает?