我不明白为什么模型不检查密码确认,这是模型的代码:
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
控制器的目的是从视图获取数据并尝试执行保存,这是视图的代码:
<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%>
如果密码不匹配,则不会出现错误。
发布于 2012-06-07 16:20:37
如果您正在使用批量分配,则需要将密码添加到attr_accessible
。attr_accessor
将创建一个虚拟属性,但不能用于批量赋值理想情况下,我们不应该将password_confirmation
添加到attr_accessible
,validates_confirmation_of
应该验证password
和password_confirmation
的值,但password_confirmation
的值即将为零。我在attr_accessible中添加了password_confirmation
,它工作正常
使用Rails 3。
https://stackoverflow.com/questions/4697536
复制相似问题