如何验证密码确认?如果密码不匹配,用户就会收到错误。与函数“validates_presence_of”相同,错误输出字段是否为空。 可悲的是,这对我不起作用。
<div class="field_left">
<%= f.label :password, "Password" %><br />
<%= f.password_field :password %>
</div>
<div class="field">
<%= f.label :password_confirmation, "Password retry<span>*</span>".html_safe %><br />
<%= f.password_field :password_confirmation %>
</div>
class User < ActiveRecord::Base
validates_confirmation_of :password
attr_accessible :password, :password_confirmation
attr_accessor :password
end
有人可以帮助我吗?
非常感谢你!
答案 0 :(得分:2)
我的应用中的代码运行良好:
class User < ActiveRecord::Base
validates_confirmation_of :password
attr_accessible :password, :password_confirmation
attr_accessor :password
end
您必须设置attr_accessor:密码
答案 1 :(得分:1)
在任何人能够正确回答你的问题之前,你必须清楚地解释什么是行不通的。简单地说它“不起作用”并不能帮助您获得所需的答案。请清楚地解释您期望发生的事情,然后解释实际发生的情况,并使用日志文件条目和相关源代码等相关信息进行备份。
如果您能提供此信息,我将很乐意更新此答案,为您指明正确的方向。
<强>更新强>
您需要为您的用户提供身份验证方法。 有很多方法可以做到这一点,这完全取决于您如何加密密码。 我可以建议你观看这个Railscast。它解释了一种验证用户身份的非常好的方法,几乎是事实上的Rails方式,被许多宝石使用,例如Devise
http://railscasts.com/episodes/250-authentication-from-scratch
答案 2 :(得分:0)
你错过了:
attr_accessible :password, :password_confirmation
frank blizard是对的
答案 3 :(得分:0)
您的user.rb看起来没有attr_accessor :password_confirmation
。除了attr_accessible
白名单外,您还需要它。
答案 4 :(得分:0)
问题在于我实现了新方法:
@user = User.new (:last_name => params[:user][:last_name], :first_name => params[:user][:first_name] and so on.
而不是:
@user = User.new(params[:user]
然后与
一起工作validates_confirmation_of :password
attr_accessible :password_confirmation
attr_accessor :password