5

コントローラーコードで実際に処理したい入力データの検証があります。理由は次のとおりです。

  1. 非常に特殊な状況でのみ適用されるためverifying、フォーム定義で関数を乱雑にすると、コードのまとまりが低下します。
  2. これにより、コントローラーの他の場所で使用する必要がある付随的な結果が生成されます。

の分岐でForm追加の (フィールドまたは一般的な) エラー メッセージにバインドされたばかりのような新しいものを生成するクリーンな方法フォームは何ですか?successForm.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 ...
      }
  }
4

2 に答える 2