Mongoid имеет встроенное управление версиями, когда вы смешиваете модуль Mongoid :: Versioning. Это работает очень хорошо для меня, но я неэффективно работаю с версиями на модели. Позвольте привести пример. Предположим, что я создаю приложение для блога (я не).Mongoid Versioning Scopes
Моя модель - это сообщение. Предположим, я хотел найти все предыдущие опубликованные версии одного сообщения. Следующие работы:
post = Post.first # just grab something
published_posts = post.versions.find_all{ |v| v.published == true }
И т. Д. Затем я мог что-то сделать с опубликованными сообщениями или что-то еще. Мне бы хотелось сделать именованный параметр для этого, поэтому я не помещаю блок find_all в свое представление, но я не могу понять, как переопределить встроенную функциональность класса Version.
Я пробовал различные области применения в классе Post. Например:
# I can't get this and other variations on this to work
scope :versions_published,
:where => 'self.versions.find_all{ |v| v.published == true }'
Я также пробовал обезглавливать класс версии, но это не очень нравится. У меня есть обходной путь, я просто надеялся узнать больше о встроенном Versioning Mongoid, особенно о том, как расширить класс версии.