Nap*_*tir 2 ruby validation ruby-on-rails devise
因此目前validatable验证电子邮件和密码是否存在。它还可以验证电子邮件格式。但是,我的user模型需要的不仅仅是电子邮件和密码。我还需要名字、姓氏和用户名。因此,为了验证这些属性是否存在,我必须使用 Rails 验证,如下所示:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
validates :first_name, presence: true
validates :last_name, presence: true
validates :user_name, presence: true
end
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法将名字、姓氏和用户名添加到可验证操作中。我已检查该devise.rb文件并找到了 password_length 和 email_regexp 的可验证配置,但不太知道如何向可验证函数添加其他属性。显然这不是什么大问题,但对于清理我的用户模型中的代码来说会很好。感谢您对我的问题的任何答复。
虽然您可以Devise::Models::Validatable在运行时进行猴子补丁,但这将是相当愚蠢的。它将需要 5 倍以上的代码,并且可能会破坏升级。
该模块的重点是为模型提供 Devise 开箱即用所需的基本验证。
您要添加的是特定于您的应用程序的验证。因此,它属于您的应用程序 - 不要尝试将其放回库中。
相反,可以通过以下方式清理您的模型:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
validates_presence_of :first_name, :last_name, :user_name
end
Run Code Online (Sandbox Code Playgroud)