2009-05-20 23 views
0

サイトのサインアップフォームに数式の合計をとり、レールの検証を使って検証するフィールドが必要です。それを行うための最良の方法は何ですか?レールの検証で数式を検証する

すなわち

6 + 9とは何ですか? [8]

エラーメッセージ:あなたのモデルクラスに間違った番号

答えて

1

オーバーライドにvalidate方法を入力しました。 newアクション用に作成するモデルオブジェクトは、createアクション用に作成されたモデルオブジェクトとは異なるインスタンスなので、検証中に再作成できるように、ランダムシードまたは数式式をフォームのどこかに保存する必要があります。

その後、の線に沿って何か:

def validate 
    unless math_equation_answered? 
    errors.add("math_answer", "is incorrect") 
    end 
end 

math_equation_answered?の実装は、あなた次第ですとmath_answerは、ユーザーの回答に使用どんなモデルフィールドに変更する必要があります。

+0

私はそれを試して、それがうまくいくかどうかを確認しますスティーブ – IBarnes