ruby-on-rails - Rails 跳过条件验证

标签 ruby-on-rails ruby validation ruby-on-rails-4

我试图在我的应用程序中绕过用户模型的密码验证。我有以下基于一些类似的 SO 问题:

模型.rb

attr_accessor :skip_password_validation
has_secure_password
validates :password, length: { minimum: 6 }, allow_nil: true, unless: :skip_password_validation

Controller .rb

@mem.skip_password_validation = true
if @mem.valid?
    #do some stuff
else
    render 'last_template'
end

虽然这始终呈现最后一个模板并返回密码验证错误。感谢您的帮助。

最佳答案

问题是 as mentioned in the docs has_secure_password 添加自己的验证:

The following validations are added automatically:

  • Password must be present on creation
  • Password length should be less than or equal to 72 characters
  • Confirmation of password (using a password_confirmation attribute)

更新

Also as mentioned in the docs您可以通过提供 :validations 选项来禁用验证,将其设置为 false:

For further customizability, it is possible to supress the default validations by passing validations: false as an argument.

关于ruby-on-rails - Rails 跳过条件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30466053/

相关文章:

angular - 提交 Angular4 时触发表单验证

ruby-on-rails - Ransack::Search<class: 错误的未定义方法 `name_cont'?

javascript - Ruby on Rails,json 与 js ajax 响应

ruby-on-rails - 在 Rails 中验证失败时,选择提示选项消失

ruby-on-rails - 安装 Rails 但它说我没有 :)

ruby-on-rails - rails 数组维护顺序

ruby - 创建的 CloudFormation 堆栈对 SDK 不可见

angular - 具有验证功能的表单(嵌入式组件)中可重用的嵌套子组件

Scala:将整个列表的 Either 与每个元素的 Either 结合起来

mysql - 在 Snow Leopard 上编译 mysql gem 时遇到问题