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?
Verwenden Sie Postgre in Entwicklung auch? Stelle sicher, dass dein Gemfile in den Gruppen "Test" oder "Entwicklung" nicht so etwas wie 'sqlite3' hat. – Coolness