2011-06-29 16 views
7
ben böylece e-postasının kullanılması giriş alanı set edilmiş, benim kullanıcı modeli ile authlogic kullanıyorum

i yeni yapmaya çalışırsanızAuthlogic: hatası "E-posta zaten alınmış" üretir iki kez

acts_as_authentic do |c| 
    c.login_field = :email 
end 

(konsoldan)

user = User.new(:first_name => "fred", :last_name => "Smith", :email => User.last.email);user.valid?;errors = user.errors 
=> {:email=>["has already been taken", "has already been taken"]} 

Bu belki, oturum olarak e-posta kullanarak bir ilgisi olduğunu tahmin ediyorum: kullanıcı ve e-posta iki kez yinelenen bir e-posta hata ekler, zaten kullanımda? Validates_format_of dışında e-postada başka onaylarım yok ve bu doğrulama işlemini kaldırmayı denedim (fark yaratmıyor).

Doğrulama başarısız olduğunda formda gösterdiğim hatalarım bozulduğu için bir acıdır.

Authlogic'i kullanmayı denemeden önce, bunun neden olduğunu biliyor mu? teşekkürler, en fazla

cevap

10

Sadece aynı sorunla karşılaştım. acts_as_authentic satırında config.validate_email_field = false'u aramayı deneyin. Yine de e-posta alanında bizim durumumuzda olan ancak bir kez sadece giriş alanını doğrular.

+0

aha, güzel, teşekkürler :) –

+2

Ayrıca, bu alanda elle atanmış doğrulamaya sahip olmadığınızdan emin olun. validates: email,: presence => true'. Bu, iletinin 3 kez döndürülmesiyle sonuçlandı. – mrt

2

Authlogic'te iki yöntem vardır: validate_email_field ve validate_login_field.

Bu yöntemler/spesifik doğrulamaları etkinleştirmek devre dışı bırakın:

Ben de app config.login_field :email kullanıyorum ve emin olun User#email buna gerek doğrulandı. Bu yüzden benim durumumda validasyonlar arasındaki fark nedeniyle config.validate_login_field = false kullanmayı tercih ettim.

+0

bilgi için teşekkürler! –