2013-11-14 3 views
0

Я использую Mongoid 3.1Mongoid проверки

Я пытаюсь автоматически создать слизняка (self.name.parameterize), когда создается новая запись. Я хочу, чтобы слизь присутствовал и был уникальным. У меня есть следующий код, который работает. Тем не менее, я не думаю, что это правильно, потому что generate_slug вызывается каждый раз, когда модель сохраняется, создавая много накладных расходов. Однако, если я использую before_create, как я могу еще подтвердить уникальность и присутствие? У Mongoid нет before_validation_on_create, как у ActiveRecord.

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 

ответ

Смежные вопросы