我正在研究Slick 3+Play Framework和Scala。我不知道为什么我的Play模板没有呈现我第一次从Slick DB调用中获得的数据。当我再次刷新同一页面时,它显示了数据,但无法第一次呈现。
这是我的代码,
Slick DB调用:
def findByAccessToken(Id: String): Future[Option[Organization]] =
db.run(orgs.filter(_.Id=== Id).result.headOption)
控制器操作呼叫:
def getOrgInfo = Action.async { request =>
val maybeOrg = for {
org <- orgDAO.findByAccessToken(request.session.get("oauthAccessToken").get)
} yield org
maybeOrg.map {
case org =>
org match {
case Some(c) => Ok(views.html.account(c))
case None => NotFound
}
}
最终播放模板代码:
@(Org: Organization)
@container("Org Info") {
<h1>Org Information</h1>
<ul>
<li>
User Id: @Org
</li>
</ul>
}
看起来,当我第一次加载页面时,db调用还没有传递结果,但因为当我刷新页面时,它显示了数据。
如何处理这个场景以及第一次呈现的数据?
谢谢