2012-04-18 16 views
4

AJAX呼び出しを使用してJSONデータを取得し、そこからHTMLフォームを生成するため、どの入力フィールドを取得するのか事前にわかりません。即時に検証ルールを定義することは可能ですか?おそらくActiveAttrを使用して擬似モデルを定義しますが、データを受け取った後は妥当性検査をしたいと思います。動的に作成されたフォームのRails検証

だから...任意のアイデアですか?

+0

freenode上の '#rubyonrails'チャットルームからのユーザー' epochwolfは、私にActiveModelの使用を勧めました。 http://www.rubyinside.com/rails-3-0s-activemodel-how-to-give-ruby-classes-some-activerecord-magic-2937.html – aL3xa

+1

あなたも未知のフィールドですか(つまり、それらは作成されますか?あなたは固定されたテーブルを持っていますか? if:>オプションを使用して、特定の検証ルールを除外できますか? – Roger

+0

al.3xa、どうやって解決しましたか? – aaandre

答えて

0

ActiveModelの組み合わせと、カスタム検証方法またはクラスのいずれかを使用してトリックを行う必要があります。クラスが宣言されたときにフィールドがわからないので、標準の検証宣言を(AFAIK)使用することはできません。

1

ClassName.class_eval %Q[validates :#{name}, length: {minimum: 5}]を使用すると、検証を動的に追加できます。もちろん、name変数にsetterとgetterを追加する必要があります。 class_evalは文字列を使用するので、無限の可能性があります。

関連する問題