我正在使用Mongoid 3.1
我正在尝试在创建新记录时自动创建一个slug(self.name.parameterize
)。我想确保slug存在且独特。我有以下代码正在工作。但是,我不认为这是正确的,因为每次保存模型时都会调用generate_slug
,从而产生大量开销。但是,如果我使用before_create,我怎样才能验证唯一性和存在感? Mongoid没有像ActiveRecord这样的before_validation_on_create
。
before_validation :generate_slug
field :slug
index({ slug: 1}, { unique: true })
validates :slug, :presence => true, :uniqueness => {:case_sensitive => false}
attr_readonly :slug
private
def generate_slug
self.slug ||= name.parameterize unless name.blank?
end