有没有办法用restful_authentication更改密码的最小长度?目前它是6个字符,我需要另一个值。
我已尝试在此类
之前和之后调用valid :: ByPassword之前调用validates_length_ofvalidates_length_of :password, :within => 4..40, :if => :password_required?
include Authentication::ByPassword
并且像这样:
include Authentication::ByPassword
validates_length_of :password, :within => 4..40, :if => :password_required?
但最低密码保持在6。
答案 0 :(得分:0)
转到vendor / plugins / restful-authentication / lib / authentication / by_password.rb并编辑此字符串
validates_length_of :password, :within => 6..40, :if => :password_required?
答案 1 :(得分:0)
ActsAsAuthentic有如下配置选项:
acts_as_authentic do |config|
config.merge_validates_length_of_password_field_options :within => 4..40
config.merge_validates_confirmation_of_password_field_options :within => 4..40
end
不幸的是,RestfulAuthentication没有这些配置选项。 正确的解决方案是分叉RestfulAuthentication项目并添加它们。
与此同时,你可以修补Authentication::ByPassword.included
:
# in app/models/user.rb:
Authentication::ByPassword.class_eval do
def self.included(base)
recipient.extend(ModelClassMethods)
recipient.class_eval do
include ModelInstanceMethods
# Virtual attribute for the unencrypted password
attr_accessor :password
validates_presence_of :password, :if => :password_required?
validates_presence_of :password_confirmation, :if => :password_required?
validates_confirmation_of :password, :if => :password_required?
validates_length_of :password, :within => 4..40, :if => :password_required?
before_save :encrypt_password
end
end
end