У меня есть область моей модели Contract, которая использует merge и возвращает массив, а не ActiveRecord::Relation, как я бы хотел.
Да, я видел, что он сказал, что Это ActiveRecord:: Relation, но Rails намеренно лжет вам. Но в этом случае:
- В области использования
merge - он работает только в том случае, если последний объект в цепочке
- Возвращаемый объект говорит об этом классу
Array - Возвращаемый объект не имеет ничего о
ActiveRecordв своих предках - Вызов
ActiveRecord::Relationметодов типаscopedпо возвращаемому значению повышает рейзыNoMethodError: undefined method 'scoped' for []:Array.
Объем находится на Contract и выглядит примерно так:
scope :hourly, scoped.merge(Division.find_by_name!('Hourly').contracts)
Почему это возвращает массив? Могу ли я заставить его вернуть ActiveRecord::Relation?