2009-03-26 7 views
2

私はユーザー登録フォームを持っていて、自分の登録メソッドに「captcha」を検出している人間を書いたかったのです。私はユーザーが答えるための簡単な数学的質問を作成することにしました(これは私の目的のために働くはずです)。Ruby on Railsフォーム(キャプチャなど)で外部フォームフィールドを検証する方法は?

このフィールドの値をチェックする検証を行うにはどうすればよいですか?次のように私は私のモデルファイル内のvalidateメソッドを書いた:しかし

def validate 
    errors.add(:humanproof, "is not the right answer") if humanproof != 4 
end 

以来:humanproofは、ユーザモデルの一部ではない、「humanproof」変数が使用できません。

ヒューマンプルーフ変数にアクセスする最も良い方法は何ですか?

答えて

4

仮想属性を追加することができます。 RailsCastからscreencastをチェックしてください。

基本的に、クラスに属性を追加したいとします。あなたがそれを使ってロジックを実行する必要がないので、ビルドされたRubyメソッドフォームのインスタンス変数を使うことができます。

これは、データベースに保存されない属性をクラスに追加し、要求の持続時間中にオブジェクトにアタッチされます。

関連する問題