2009-03-02 7 views
9

Railsの特定のモデルに関連付けられていないフォームフィールドでエラーを報告するにはどうすればよいですか?例として、ランダムなユーザー/パスワードを持つユーザーアカウントを一括作成するためのフォームがあります。入力として、作成するユーザーの量、すべてのユーザーが持つべき属性に関する情報、作成されたユーザーに関連付けられたuser_batchesモデルに格納されているバッチに関する情報が入力として取り込まれます。レールの非モデルフィールドのエラー

数量フィールドからのエラーをリストする方法は、モデルなし、ユーザー情報フィールド、作成されるユーザーレコードに関連付けられ、user_batchesモデルは最小限のコードで関連付けられるのが理想的です。

これは、ARバリデーションでは実行されない検索フォームなどにも適用されます。何か案は?

答えて

3

このようにモデルオブジェクトにエラーを手動で追加できます。

@user_batch.errors.add_to_base("Foo") 
+0

ありがとうございます!しかし、それを追加する特定のインスタンスがない場合はどうしますか?無効なクエリのためにオブジェクトが返されなかった複数のオプションを持つ検索フォームと同様?または、複雑なSQLの結果が、オブジェクトを返さず、生データだけを返すという結果を表示するレポートの場合は、 –

+0

1つのアプローチは、表示したいエラーの単純な配列を保持することです。これは、コントローラアクションの過程で構築します。その後、レンダリングの直前にフラッシュメッセージに変換します。 – jdl

+0

ありがとうJDL、それは実際に私が避けたいと思っていたものですが、それは今のところ私が行くつもりです。私はerrors_onが明示的にフォームに結びついているのが好きですが、フラッシュメッセージはページにもっと結びついています。 –

関連する問題