AJAX 呼び出しを使用して JSON データを取得し、そこから HTML フォームを生成しているため、取得する入力フィールドが事前にわかりません。その場で検証ルールを定義することは可能ですか? おそらくActiveAttrを使用して疑似モデルを定義しますが、データを受け取ったら検証を押し込みたいと思います。
それで...何かアイデアはありますか?
AJAX 呼び出しを使用して JSON データを取得し、そこから HTML フォームを生成しているため、取得する入力フィールドが事前にわかりません。その場で検証ルールを定義することは可能ですか? おそらくActiveAttrを使用して疑似モデルを定義しますが、データを受け取ったら検証を押し込みたいと思います。
それで...何かアイデアはありますか?
ClassName.class_eval %Q[validates :#{name}, length: {minimum: 5}]
検証を動的に追加するために使用できます。もちろん、name
変数にはセッターとゲッターを追加する必要があります。class_eval
文字列を使用するため、無限の可能性があります。
カスタム検証メソッドまたはクラスのいずれかとの組み合わせでActiveModel
うまくいくはずです。クラスが宣言されたときのフィールドがわからないため、標準の検証宣言を使用することはできません(AFAIK)。