Украсить ActiveRecord во время загрузки - PullRequest
2 голосов
/ 16 сентября 2011

У меня есть модель Rails ActiveRecord, в которую я хочу возвращать оформленные результаты, когда выполняю запрос с использованием my_method, но только после того, как запрос выполнен и вернул результаты.

Другими словами:

MyModel.where(condition).my_method.where(another_condition)

Вернет ActiveRelation.Мой метод my_method не нарушает цепочку запросов до тех пор, пока результаты загружаются лениво.

MyModel.where(condition).my_method.where(another_condition).all

Вернет MyDecoratedResult.

Один из способов, которым я мог бы это сделать, - это сделать my_method для оформления при вызове и разумно пересылать последующие запросы к его содержимому(ActiveRelation).Я не возражаю против этого, но предпочел бы технику, которая требует меньше интеллекта.

Хотелось бы услышать некоторые идеи о других способах достижения моей цели.Помимо упомянутого выше способа, я могу думать только о расширении ActiveRelation.

Спасибо!Max

...