Сравнения Postgres по умолчанию чувствительны к регистру, поэтому вам необходимо обновить сгенерированный метод User.authenticate
, чтобы соответствовать этому, не зная точно, какую версию restful_auth вы используете (или какие опции вы установили с ней) Трудно предоставить точный код, но вы хотите, чтобы сравнение выглядело примерно так:
def self.authenticate(login, password)
return nil if login.blank? || password.blank?
u = find :first, :conditions => ['lower(login) = ? AND activated_at IS NOT NULL', login.downcase] # need to get the salt
u && u.authenticated?(password) ? u : nil
end
Это должно работать и в MySQL - lower()
является синонимом lcase()
, по крайней мере, в 5 +