多个属性的常用条件验证规则(rails)

时间:2018-04-18 09:34:44

标签: ruby-on-rails validation activerecord

我有一个属性为attr1, attr2, attr3, attr4...的ActiveRecord模型
例如attr3和4具有相同的填充状态,这意味着它们必须存在或不存在。我已经通过几个条件验证做了这个。

validates :attr4, presence: true, if: :condition?
validates :attr4, absence: true, unless: :condition?

def condition?
  attr3 != ""
end

但我想知道是否有更优雅的方式来实施该规则。

1 个答案:

答案 0 :(得分:1)

您可以使用自定义验证程序:

validates :attr4, swap: true

然后在你的模型中使用:

//Helpshift
// use version 26.1.0 instead of 26.0.2
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support:recyclerview-v7:26.1.0'
implementation 'com.android.support:cardview-v7:26.1.0'

// exclude the support library
implementation ('com.helpshift:android-helpshift-en-aar:6.4.2') {
    exclude group: 'com.android.support'
    exclude module: 'design'
    exclude module: 'recyclerview'
    exclude module: 'cardview-v7'
}