From: Tom Hughes Date: Mon, 6 Jun 2011 23:22:23 +0000 (+0100) Subject: Only check some user validations when the field has changed X-Git-Tag: live~6248^2~1 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/31b2d4510849071c57073216a78f8d4fc5a91282?hp=86bb9e5a50cd38de813705d99ee63ebd4d15e079 Only check some user validations when the field has changed --- diff --git a/app/models/user.rb b/app/models/user.rb index d2535bbd4..a817c0fcf 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -25,11 +25,11 @@ class User < ActiveRecord::Base validates_uniqueness_of :email validates_length_of :pass_crypt, :within => 8..255 validates_length_of :display_name, :within => 3..255, :allow_nil => true - validates_email_format_of :email - validates_email_format_of :new_email, :allow_blank => true - validates_format_of :display_name, :with => /^[^\/;.,?]*$/ - validates_format_of :display_name, :with => /^\S/, :message => "has leading whitespace" - validates_format_of :display_name, :with => /\S$/, :message => "has trailing whitespace" + validates_email_format_of :email, :if => Proc.new { |u| u.email_changed? } + validates_email_format_of :new_email, :allow_blank => true, :if => Proc.new { |u| u.new_email_changed? } + validates_format_of :display_name, :with => /^[^\/;.,?]*$/, :if => Proc.new { |u| u.display_name_changed? } + validates_format_of :display_name, :with => /^\S/, :message => "has leading whitespace", :if => Proc.new { |u| u.display_name_changed? } + validates_format_of :display_name, :with => /\S$/, :message => "has trailing whitespace", :if => Proc.new { |u| u.display_name_changed? } validates_numericality_of :home_lat, :allow_nil => true validates_numericality_of :home_lon, :allow_nil => true validates_numericality_of :home_zoom, :only_integer => true, :allow_nil => true