3

1つの関数を次のように変更しました:

def submit = Action { request =>
  signupForm.bindFromRequest()(request).fold(
    // Form has errors
    errors => BadRequest(html.signup.form(errors)),

    // We got a valid User value, display the summary
    user => {
      // intensive computation involving database
      Ok("okay")
    }
  )
}

def submit = Action { request =>
  val result = Akka.future {
    signupForm.bindFromRequest()(request).fold(
      // Form has errors
      errors => BadRequest(html.signup.form(errors)),

      // We got a valid User value, display the summary
      user => {
        // intensive computation involving database
        Ok("okay")
      }
    )
  }
  Async {
    result
  }
}

そして、次のコンパイルエラーが発生します。

[error]  found   : play.api.mvc.SimpleResult[_ >: java.lang.String with play.api.templates.Html <: java.io.Serializable]
[error]  required: play.api.mvc.SimpleResult[_1(in value result)] where type _1(in value result) >: java.lang.String with play.api.templates.Html <: java.io.Serializable
[error] Note: java.io.Serializable >: _1, but class SimpleResult is invariant in type A.
[error] You may wish to define A as -A instead. (SLS 4.5)
[error]       signupForm.bindFromRequest()(request).fold(
[error]                                                 ^
[error] one error found

エラーメッセージは、差異と関係があるようです。誰かが何が起こっているのか理解していますか?

4

1 に答える 1

1

BadRequestタイプSimpleResult[Html]
Okを返していますタイプを返していますSimpleResult[String]

あなたが同じタイプを作っBadRequestOk返すならば、それはうまくいくでしょう。

やってみてくださいOk(Html("ok"))-または実際にページをレンダリングしてください。

于 2012-10-22T01:12:16.267 に答える