Все поля имеют параметр :versioned
true по умолчанию. Если вы не хотите, чтобы эта версия была обновлена, вы можете передать false. Например, я хочу, чтобы имя версировалось, но без логина
class User
include Mongoid::Document
include Mongoid::Versioning
field :name, :type => String
field :login, :type => String, :versioned => false
end
Вы также можете передать параметр :versioned
в встраивание ассоциации.
Вы можете переопределить эту опцию, перебирая .fields
в вашем Документе.
Таким образом, в вашем коде вы можете добавить избежать версии в каком-то поле, создав небольшой метод:
class User
include Mongoid::Document
include Mongoid::Versioning
include Mongoid::Voteable
field :name, :type => String
field :login, :type => String
def self.avoid_versioned(*unversioned_fields)
unversioned_fields.each do |f|
fe = self.fields[f.to_s]
fe.options[:versioned] = false if fe
re = self.relations[f.to_s]
re[:versioned] = false if re
end
end
avoid_versioned( :login, :votes )
end