在我的user
模型中,我验证了password
和instance method
这样:
class User < ActiveRecord::Base
validate :email ......
validates :password, length: { minimum: 6 }
def my_method
# .....
# save!
end
end
正如你在这个方法中看到的,我调用save!
方法,在更改某些字段后保存用户,所以我想跳过验证密码而不是其他验证只有当我在用户实例上调用my_method
时,我该怎么办呢?谢谢
答案 0 :(得分:2)
我找到了解决方案,如果有人感兴趣,我只需将attr_accessor :skip_password_validation
添加到我的模型中,然后我为我的密码验证validates :password, length: { minimum: 6 }, unless: :skip_password_validation
添加一个条件,当我在其中调用my_method
时具有用户模型实例的控制器,我在上面用 true 设置了这个属性。这就是用户模型的样子:
class User < ActiveRecord::Base
validate :email ......
validates :password, length: { minimum: 6 }, unless: :skip_password_validation
attr_accessor :skip_password_validation
def my_method
# .....
# save!
end
end
在控制器之前我打电话 user.my_method 我只需添加以下行:user.skip_password_validation = true
。
我希望这可以帮助你:)。
答案 1 :(得分:-2)