Validatoren, Passwortbestätigung
Ich nicht herausfinden können, warum das Modell doesen ' T check für die Bestätigung des Passworts, das ist der code des Modells:
class User < ActiveRecord::Base
attr_accessor :password_confirmation
validates :email, :presence =>true,
:uniqueness=>true
validates :password, :presence =>true,
:length => { :minimum => 5, :maximum => 40 },
:confirmation =>true
validates_confirmation_of :password
end
Controller soll die Daten aus der view und führen Sie ein sparen, das ist der code der Ansicht:
<h1>Registration process</h1>
<%= form_for(@new_user) do |f|%>
<% if @new_user.errors.any? %>
<div id="errorExplanation">
<h2><%= pluralize(@new_user.errors.count, "error") %> prohibited this article from being saved:</h2>
<ul>
<% @new_user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.label :email %><br />
<%= f.text_field :email %><br />
<%= f.label :password %><br />
<%= f.password_field :password %><br />
<%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %>
<%#TODO Confirm password%>
<%= f.submit 'Join' %>
<%end%>
Keine Fehler kommen, wenn das Passwort nicht übereinstimmt.
Kommentar zu dem Problem - Öffnen
Der obige code funktioniert für mich.
Brauchst du die doppelte Bestätigung der Validierung? Geben Sie
:Bestätigung => true
in das Passwort-Validierung. Ja...der code funktioniert bei mir auch (wie Chamnap sagte) und mit einer Doppel-password_confirmation validator sollte nicht der Grund dafür sein, nicht zu arbeiten., es wäre einfach geben Sie zweimal die Meldung "Passwort nicht mit der Bestätigung überein"
InformationsquelleAutor der Frage Joe | 2011-01-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hab ich gerade gebrannt, diese ebenfalls. Ich vermute, Ihr Bestätigung Wert ist
nil
. Aus den docs:Auch, Sie brauchen nicht
attr_accessor :password_confirmation
, da die überprüfung fügt hinzu, dass es für Sie. Schienen!InformationsquelleAutor der Antwort SooDesuNe
Wenn Sie mit einer Masse Zuordnung als Sie brauchen, um hinzuzufügen, Passwort
attr_accessible
.attr_accessor
wird, erstellen Sie ein virtuelles Attribut aber dieselbe wird nicht verfügbar sein für die Massen-ZuordnungIdeal sollten wir nicht hinzufügen
password_confirmation
zu denattr_accessible
,validates_confirmation_of
sollte, überprüfen Sie den Wert vonpassword
undpassword_confirmation
aber der Wert vonpassword_confirmation
kommt nill. Ich fügtepassword_confirmation
zu attr_accessible und es funktioniert einwandfreiArbeiten mit Rails 3.
InformationsquelleAutor der Antwort Kaushal Kishore