ModelName.real в моделях приложения Rails - PullRequest
0 голосов
/ 07 мая 2019

Я проверил один код, где в модели была записана ассоциация.

has_many :association_name, -> { merge(ModelName.real) }, class_name: ModelName.to_s

Было бы здорово, если бы кто-нибудь это объяснил.

Ответы [ 2 ]

1 голос
/ 07 мая 2019

Возможно, у вас есть метод или область действия, называемая real для ModelName , которая объединяется в запросе отношения.

При вызове лямбды в отношении применяетсявид области по умолчанию при вызове, поэтому, что происходит при вызове MyModel.association_name:

MyModel.association_name.merge(ModelName.real)
0 голосов
/ 07 мая 2019

Ассоциации могут иметь необязательную область действия. В ModelName должен быть метод или область действия с именем real.

Для параметра class_name:

Укажите имя класса ассоциации. Используйте это только если это имя не может быть выведено из названия ассоциации. Итак has_many: продукты по умолчанию будет связан с классом Product, но если реальный класс зовут SpecialProduct, вам нужно будет указать его с помощью этой опции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...