Я использую 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