Я проверил один код, где в модели была записана ассоциация.
has_many :association_name, -> { merge(ModelName.real) }, class_name: ModelName.to_s
Было бы здорово, если бы кто-нибудь это объяснил.
Возможно, у вас есть метод или область действия, называемая real для ModelName , которая объединяется в запросе отношения.
real
ModelName
При вызове лямбды в отношении применяетсявид области по умолчанию при вызове, поэтому, что происходит при вызове MyModel.association_name:
MyModel.association_name
MyModel.association_name.merge(ModelName.real)
Ассоциации могут иметь необязательную область действия. В ModelName должен быть метод или область действия с именем real.
Для параметра class_name:
Укажите имя класса ассоциации. Используйте это только если это имя не может быть выведено из названия ассоциации. Итак has_many: продукты по умолчанию будет связан с классом Product, но если реальный класс зовут SpecialProduct, вам нужно будет указать его с помощью этой опции.