У меня есть область моей модели 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
?