Ruby on rails 如果出现错误,请清除密码字段
我有一个带有虚拟属性的常规注册表单:Ruby on rails 如果出现错误,请清除密码字段,ruby-on-rails,Ruby On Rails,我有一个带有虚拟属性的常规注册表单: attr_accessor :password_confirmation def password @password end def password=(password) @password=self.crypted_password = User.encrypt(@password=pass, create_new_password_salt) end 当密码出现错误时,我想清除表单的密码字段。我知道如何使用return使password
attr_accessor :password_confirmation
def password
@password
end
def password=(password)
@password=self.crypted_password = User.encrypt(@password=pass, create_new_password_salt)
end
当密码出现错误时,我想清除表单的密码字段。我知道如何使用return使password字段在出错时不显示,但是如果password字段有错误,我无法知道如何使password\u confirmation字段返回
视图很简单
<% form_for @user do |f| %>
<%= f.password_field :password %>
<%= f.password_field :password_confirmation %>
<% end %>
我不完全清楚您当前的密码验证是如何工作的,但类似这样的情况如何:
class User < ActiveRecord::Base
...
validate :password_confirmation_matches
def password_confirmation_matches
if password != password_confirmation
errors.add_to_base("You did not correctly confirm your password")
self.password_confirmation = self.password = nil
end
end
end
class用户
这对您有效吗?我不完全清楚您当前的密码验证是如何工作的,但类似这样的情况如何:
class User < ActiveRecord::Base
...
validate :password_confirmation_matches
def password_confirmation_matches
if password != password_confirmation
errors.add_to_base("You did not correctly confirm your password")
self.password_confirmation = self.password = nil
end
end
end
class用户
这对你有用吗?你能发布一些视图代码吗?在显示这些字段之前,您可能只想将密码和密码确认设置为nil。但是,如果其他字段出现错误,则必须重新输入密码。我想这并不是不合理的。你能发布一些你的视图代码吗?在显示这些字段之前,您可能只想将密码和密码确认设置为nil。但是,如果其他字段出现错误,则必须重新输入密码。我想这不是不合理的。