Rails 3: erstellen einer Validierung mit :if-Anweisung
Hallo, ich bin versucht, setup-Validierung, die nur in einer bestimmten form anzeigen, um dies zu tun, die ich versuche zu schaffen, eine hidden_field für ein virtuelles Attribut auf das Formular und legen Sie diese auf einen Wert, dann überprüfen :wenn der virtuelle Attribut entspricht dem Wert.
Bisher habe ich:
## user model
validates_presence_of :password_confirmation, :if => :confirmation_validation
attr_accessible :email, :password, :password_confirmation,
:remember_me, :name, :avatar, :username, :bio, :confirmation_validation
def confirmation_validation
# not sure what goes here???
end
## form view
<%= form_for(resource, :validate => true, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }, :html => {:multipart => true}) do |f| %>
<%= devise_error_messages! %>
<p><%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
<%= f.password_field :password %></p>
<p><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %>
<% f.hidden_field :confirmation_validation, :value => 100%></p>
<p><%= f.submit "Update" %></p>
<% end %>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Wert der
confirmation_validation
hidden-Feld, sollte in derparams
hash, und auch die virtual-Attribut entsprechend. Daher können Sie vielleicht einfach überprüfen, ob der Wert gesetzt wurde:schreiben eine Zeile code, es könnte Ihnen helfen, organisieren Sie Ihren code in einfache.
oder
Diese Reaktion ist sehr spät, aber für die Zukunft, DAMIT die Zuschauer, ich denke, die Antwort auf @Rajesh Frage
Ist, dass Sie müssen entfernen die verborgene Feld, das Sie verwenden, wie ein flag aus der params-hash, bevor es zugewiesen wird, um den Datensatz. So etwas wie