我正在开发Slick 3 + Play Framework和Scala。我不知道为什么我的Play模板没有渲染我第一次从Slick DB调用获取的数据。当我再次刷新同一页面时,它显示数据但无法第一次渲染。
这是我的代码,
Slick DB call:
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调用还没有传递结果,但因为当我刷新它时会显示数据。
如何首次处理此场景和渲染数据?
谢谢
答案 0 :(得分:0)
可能这与模板没有任何关系。您可以添加一些调试语句来验证。也许在第一个请求被解雇时,令牌不存在?