Mongoid имеет встроенное управление версиями при добавлении модуля Mongoid :: Versioning. Это работает очень хорошо для меня, но я неоправданно работаю с версиями на модели. Позвольте привести пример. Предположим, я создаю приложение для блога (а я нет).
Моя модель - Пост. Допустим, я хотел найти все предыдущие опубликованные версии одного поста. Следующие работы:
post = Post.first # just grab something
published_posts = post.versions.find_all{ |v| v.published == true }
Etc. Тогда я мог бы что-то сделать с ключом_публикации или чем-то еще. Я бы хотел сделать для этого именованную область видимости, поэтому я не помещаю блок 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 }'
Я также пытался установить исправление класса Version, но мне это не очень нравится. У меня есть обходной путь, я просто надеялся узнать больше о встроенных версиях Mongoid, особенно о расширении класса Version.