2017-01-05 4 views
1

Ich habe einen einfachen Test auszuführen. Im Folgenden finden Sie den folgenden Code ein:Warum ist Rails 4.2.6 uniqueness: true, case_sensitive: true fail?

it 'should validate that email is lowercase' do 
    account = build(:account, email: '[email protected]') 
    lowercase_account = build(:account, email: '[email protected]') 
    account.wont_be :valid? 
    lowercase_account.must_be :valid? 
    end 

Nach meinem Test sollte [email protected] versagen und [email protected] passieren sollte. Wenn ich jedoch den Test durchführe, gehen beide E-Mails durch.

Hier ist mein Validierungscode für mein Modell Account.

validates :email, presence: :true, length: { in: 3..100 }, uniqueness: true, 
        confirmation: true, email_format: true, allow_blank: false 
validates :email_confirmation, email_format: true, presence: true, allow_blank: false, on: :create 

Was könnte der Fehler hier sein? Ich habe diesen Link auf SO als Ausgangspunkt Rails 4 validation case insensitivity test verwiesen. Es hatte einige gute Informationen, aber ich benutze Postgresql und nicht MySQL, um die Kontoeinfügung durchzuführen. Nach meinem Wissen, tut Postgresql nicht eine Groß-und Kleinschreibung, so dass ich gut sein sollte. Hat jemand dieses Problem erlebt?

+0

Verwenden Sie Postgre in Entwicklung auch? Stelle sicher, dass dein Gemfile in den Gruppen "Test" oder "Entwicklung" nicht so etwas wie 'sqlite3' hat. – Coolness

Antwort

Verwandte Themen