【问题标题】:Rails validation on certain attribute on a specific pageRails 验证特定页面上的某些属性
【发布时间】:2019-06-26 23:08:46
【问题描述】:

我正在考虑将相同的控制器用于不同的联系人页面。但是新页面也需要电话。

所以现在联系人模型具有以下验证:

validates :name, email, :interest, presence: true

没有问题。新页面将使用我设置的默认兴趣。不过,我确实只想在某个页面上要求电话。除了对存在进行 UI 验证之外,我还想在模型中进行实际验证。

那么有没有一种简洁的方法来验证模型上查看原点(即页面)的单个属性?

【问题讨论】:

  • 如果您只是在某个页面(即控制器)上跳过验证,我会将其中的保存方法重新定义为 Contact.save(validate: false)。在我看来,这比在方法中写出冗长的条件要容易得多。
  • 这里总结了您的其他选择:stackoverflow.com/questions/12661413/…

标签: ruby-on-rails


【解决方案1】:

我认为您需要 :on 选项(或验证上下文)。 https://guides.rubyonrails.org/active_record_validations.html#on

你可以这样做:

validates :phone, presence: true, on: :some_conext

然后在更新属性的动作上

if user.save(context: :some_context)
  ....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-29
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 2012-06-18
    • 2011-07-19
    • 1970-01-01
    相关资源
    最近更新 更多