Rah*_*hul 6 validation ruby-on-rails devise
我的用户(设计)模型还有姓名,城市,国家,电话会员.
在创建注册页面 - 我 validates_presence_of city, nation, phone, name, email, :on => :create
在编辑注册页面 - 我 validates_presence_of city, nation, phone, name, :on => :update
现在当我在forgot_password_page上设置一个新密码时,它会询问里面是城市,国家,电话,名字的存在 Devise::PasswordsController#update
我该如何处理选择性验证?
我猜它应该是这样的,
validates_presence_of city, nation, phone, name, :on => :update, :if => :not_recovering_password
def not_recovering_password
# what goes here
end
Run Code Online (Sandbox Code Playgroud)
小智 10
我遇到了类似的问题,因为创建用户时并不是所有的字段都是必需的.on: :update使用验证检查其他字段的存在.
所以这就是我解决的问题:
validates :birthdate, presence: true, on: :update, unless: Proc.new{|u| u.encrypted_password_changed? }
Run Code Online (Sandbox Code Playgroud)
该方法encrypted_password_changed?是Devise Recoverable中使用的方法.
从 Jos\xc3\xa9 得到答案 - https://github.com/plataformatec/devise/issues/1623
\n| 归档时间: |
|
| 查看次数: |
6173 次 |
| 最近记录: |