1

いくつかのサンプルアプリに基づいてアプリを作成しましたが、エラーが発生しました: パラメータフラッシュの暗黙的な値が見つかりませんでした: play.api.mvc.Flash

(フラッシュがテンプレート @(title: String, user: User, systems: List[System], currentOrderBy: Int, currentFilter: String)(implicit flash: play.api.mvc.Flash) 署名を満足するようにしたいので、以前の結果を渡します)

これは問題を引き起こす私のコードです:

def index = IsAuthenticated { username => _ => 
    User.findByEmail(username).map { user =>
      Ok(
        html.systems.systems("Ken2::Systems",
          user,
          System.all,
          1, "%"
        )
      )
    }.getOrElse(Forbidden)
  }

ドキュメントには次のように書かれています:「パラメーターフラッシュの暗黙的な値が見つかりませんでした:play.api.mvc.Flash」というエラーが発生した場合、これはアクションがリクエストオブジェクトをインポートしなかったためです。以下に示すように、「implicit request=>」を追加します。

def index() = Action {   
  implicit request =>
    Ok(views.html.Application.index())
}

しかし、コードのどこにこの暗黙のリクエストを貼り付けますか? (私のコードの形式は、サンプル アプリの 1 つから来ています)

ありがとうございました

4

1 に答える 1

4

暗黙のリクエスト_ワイルドカードでマスクしました。私が理解する限り、Scala では、ワイルドカードを使用すると、これが何であれ無視することを意味します。つまり、コードでこれ以上使用することはできません。しかし、フラッシュスコープはリクエストにアクセスする必要があるため、機能していません。

これはうまくいくはずです:

def index = IsAuthenticated { username => implicit request => 
    ...
}
于 2013-09-01T18:40:16.110 に答える