0

Play 2.0.2(Play 2.0.1から)にアップグレードしようとしているアプリがあります。Play 2.0.1で動作したが、もう動作しないこのコードがあります

@javascriptRouter("jsRoutes")(
 routes.javascript.Contacts.invite,
 routes.javascript.Contacts.remove
)

コンパイラは文句を言います:

[error] /myprojectdir/target/scala-2.9.1/src_managed/main/views/html/Contacts/list.template.scala:75: Cannot find any HTTP Request Header here
[error] """),_display_(Seq[Any](/*41.2*/javascriptRouter("jsRoutes")(
[error]                                                             ^
[error] one error found
[error] {file:/myprojectdir/}projectname/compile:compile: Compilation failed
[error] Total time: 9 s, completed 11.07.2012 11:38:51

これはメーリングリストで確認されており、1人のユーザーが問題を修正しました。渡す必要のある暗黙のパラメーターがあることがわかりましたが、これを行う方法がわかりません。上記のサンプルファイルに従って、これをテンプレートに追加(?)してみました。基本的に、テンプレートの最初の行を

@(currentUser: User, inviteForm: Form[controllers.Contacts.InviteForm])

@(currentUser: User, inviteForm: Form[controllers.Contacts.InviteForm])(implicit request: RequestHeader)

しかし、これはテンプレート(?)の型署名を変更するようですが、これは私が望んでいることではありません。

助言がありますか?(?)が付いているものはすべて、私が完全に確信していないものです。私は以前にScalaでいくつかの暗黙の変換を行ったことがありますが、Playがここで私に何を期待しているか、そして私がScalaを作っているのか、プレイを間違えているのかわかりません。

編集:バグトラッカーに対応するチケットがあります。

4

2 に答える 2

1

これはあなたがすべきことです。コントローラーでは、単純に更新できることに注意してください

def foo() = Action {
    ...
    Ok(views.html.contact.list())
}

def foo() = Action { implicit request =>
    ...
    Ok(views.html.contact.list())
}
于 2012-08-03T15:59:20.847 に答える