Skip to content

Instantly share code, notes, and snippets.

@JonMidhir
Created November 5, 2012 12:44
Show Gist options
  • Save JonMidhir/4017019 to your computer and use it in GitHub Desktop.
Save JonMidhir/4017019 to your computer and use it in GitHub Desktop.
Does validates :uniqueness get called even if a field has not changed?
# Does validates :uniqueness get called even if a field has not changed?
# Isn't this a performance issue?
validates :name, :schedule_id, :uniqueness => true
# My experience that it does. So isn't it almost always necessary to make sure a change has taken
# place before running the validation? As every field being checked for uniqueness requires a
# database hit.
# This would be better:
validates :name, :schedule_id, :uniqueness => true, :if => "name_changed? || schedule_id_changed?"
# And this much better, if a bit more verbose:
validates :name, :uniqueness => true, :if => :name_changed?
validates :schedule_id, :uniqueness => true, :if => schedule_id_changed?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment