Created
September 8, 2010 03:43
-
-
Save arzumy/569579 to your computer and use it in GitHub Desktop.
gotcha for devise gem version 1.0.x, email is case-sensitive, this should fix it
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# in resource model | |
# def self.find_for_authentication(conditions={}) | |
# case ActiveRecord::Base.connection.adapter_name | |
# when 'PostgreSQL' | |
# find(:first, :conditions=>['UPPER(email) = ?', conditions[:email].upcase!]) | |
# else | |
# find(:first, :conditions => conditions) | |
# end | |
# end | |
module Devise | |
module Models | |
# Validatable creates all needed validations for a user email and password. | |
# It's optional, given you may want to create the validations by yourself. | |
# Automatically validate if the email is present, unique and it's format is | |
# valid. Also tests presence of password, confirmation and length | |
module Validatable | |
# All validations used by this module. | |
VALIDATIONS = [ :validates_presence_of, :validates_uniqueness_of, :validates_format_of, | |
:validates_confirmation_of, :validates_length_of ].freeze | |
def self.included(base) | |
assert_validations_api!(base) | |
base.class_eval do | |
validates_presence_of :email | |
validates_uniqueness_of :email, :scope => authentication_keys[1..-1], :case_sensitive => false, :allow_blank => true | |
validates_format_of :email, :with => EMAIL_REGEX, :allow_blank => true | |
with_options :if => :password_required? do |v| | |
v.validates_presence_of :password | |
v.validates_confirmation_of :password | |
v.validates_length_of :password, :within => 6..20, :allow_blank => true | |
end | |
end | |
end | |
def self.assert_validations_api!(base) #:nodoc: | |
unavailable_validations = VALIDATIONS.select { |v| !base.respond_to?(v) } | |
unless unavailable_validations.empty? | |
raise "Could not use :validatable module since #{base} does not respond " << | |
"to the following methods: #{unavailable_validations.to_sentence}." | |
end | |
end | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment