Mongoid验证

时间:2013-11-14 02:00:51

标签: ruby-on-rails-3 mongoid

我正在使用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

1 个答案:

答案 0 :(得分:0)

如果名称未更改,skipping callbacks conditionally如何。

请参阅this question