コントローラーコードで実際に処理したい入力データの検証があります。理由は次のとおりです。
- 非常に特殊な状況でのみ適用されるため
verifying
、フォーム定義で関数を乱雑にすると、コードのまとまりが低下します。 - これにより、コントローラーの他の場所で使用する必要がある付随的な結果が生成されます。
の分岐でForm
追加の (フィールドまたは一般的な) エラー メッセージにバインドされたばかりのような新しいものを生成するクリーンな方法フォームは何ですか?success
Form.fold
Form.withError
説明するために、ここで呼び出している (存在しない) メソッドのようなものが欲しいです。
val form= myForm.bindFromRequest
form.fold(
errors => BadRequest(view(errors))
{
case(data, button) =>
button match {
case Some("save") =>
val r= costlyFunction(data)
if (r.isOk) {
doSomethingWith(r)
Ok(...)
}
else {
val f= form.withError("my custom error")
BadRequest(view(f))
}
case ...
}
}