【问题标题】:Rails4: Override/skip certain model validations?Rails4:覆盖/跳过某些模型验证?
【发布时间】:2016-03-09 13:07:09
【问题描述】:

如果有人能建议这种情况下的最佳实践/最干净的方法,将不胜感激:

当有人通过我的网站创建帐户时,我有一个用户模型,其中包含几个验证检查。当有人尝试通过我的 api 创建新的用户记录时,我想跳过这些验证。

我已经阅读了一些解决方案,包括创建模型的子类并在私有方法中为每个类设置标志以跳过验证,或者使用属性访问器设置标志,不确定什么是最好的,或者是否有更好的东西可以完成。

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-4 rails-models


【解决方案1】:

你可以试试:

attributes = {
      first_name: first_name,
      last_name: last_name,
      email: email,
      title: title,
      birthday: birthday,
      phone: phone,
      mobile: mobile,
    }
user.assign_attributes(attributes)
User.save!(validate: false)

这将跳过验证。

【讨论】:

  • 有没有办法在不跳过所有验证的情况下做到这一点
  • 你的类中有不同的回调吗?你的模型中有嵌套属性吗?
  • 有表单对象的概念。 webuild.envato.com/blog/…。你可以看看。
猜你喜欢
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多