0
私はモデルのいくつかの検証がモデルのいくつかのフィールドに存在する場合にのみ実装しようとしています。そのようなフィールドのいくつかが存在する場合のエクタ条件付きの検証
:
if Changeset.get_field(changeset, :field_a) or Changeset.get_field(changeset, :field_b) do
changeset
|> a_lot_of_validations
else
changeset
end
問題がある:field_a
またはfield_b
存在は、彼らはstring
返すので、引数エラーが万能薬で例外ArgumentError
"string" or "string"
戻りbecauase、ここで提起されたとき。 not(is_nil(get_field))
を実装すると、行の長さが長くなりすぎます(これは今でも長くなっています)。したがって、この条件付き検証を実装するきれいな方法が不思議です。
私は前にこの '||' vs 'または' '特異性を知りませんでした。ありがとう! – asiniy