私はレールでのカスタム検証の学習に取り組んでおり、2 つのフォーム フィールドを比較する目的でそれを適用しようとしています。これまでのところ、保存したカスタム my カスタム バリデーターに 1 つの値を簡単に渡すことができ、app/validation/pin_validator.rb
正常に動作します。しかし、フォームから2つのデータを受け入れる次のようなものを設定したいと思います:
class PinValidator < ActiveModel::EachValidator
def validate_each (record, attribute, value)
if value1 > value2
record.errors[attribute] << (options[:message] || "validator working")
end
end
end
そして、モデルから次のように呼び出します。
validates :pin_number, :id_string, pin: true
:id_string
と:pin_number
はどちらもフォーム フィールドであり、 と として比較されますvalue1
。value2
これを行う方法はありますか?
よろしくお願いします!
注:上記の値の比較は、実際にはフロントエンドで少し JavaScript を使用して解決できます。サーバー側のソリューションを求めている理由は、最終的には両方の値をデータベース内の一連のエントリと比較するつもりだからです。上記の例は、私の質問を簡単なものに要約するためのものです。