trueの場合、私はdescription
属性を持つOrder
モデルを持っています。私は、現在のステップが最初のステップと等しい場合、またはrequire_validationがtrueに等しい場合、2つの条件の1つが満たされた場合にのみ、その存在を検証したいと考えています。Railsの - 検証:1つの条件がRailsの5</p> <p>で
私は簡単にこのような一つの条件に基づいて検証することができます:
validates :description, presence: true, if: :first_step?
def first_step?
current_step == steps.first
end
が、私は別の条件を追加すると、どちらか一方がtrueの場合、検証については移動する方法がわからないです。
何かのように:
validates :description, presence: true, if: :first_step? || :require_validation
ありがとう!
を試してみてはということは、ラムダはありませんか?ブロックは次のようになります: 'validates:description、presence:true、if:{first_step? || require_validation} ' –
ああ、そうです。私は "ラムダを渡すことができる"と言っていたはずです。 –
:)ブロックも機能します。 Railsはそれをprocまたはlambda(それを使用する前に何かを忘れる)に変換します。 –