确认密码

时间:2011-07-14 09:56:13

标签: ruby-on-rails validation confirmation

如何验证密码确认?如果密码不匹配,用户就会收到错误。与函数“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

有人可以帮助我吗?

非常感谢你!

5 个答案:

答案 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