我有一种方法可以根据用户检索博客帖子。我想在我的视图助手中使用它,但无法弄清楚如何。
BlogServiceImpl的代码是这样的:
class BlogServiceImpl @Inject() (blogDAO: BlogDAO, clock: Clock) extends BlogService {
def retrieve(user: User): Future[Seq[Blog]] = blogDAO.find(user)
}
这是使用该方法的BlogController。
def view: Action[AnyContent] = silhouette.SecuredAction.async { implicit request =>
blogService.retrieve(request.identity).map { blogSeq =>
Ok(views.html.blog.blog(request.identity, BlogForm.form, blogSeq))
}
我希望我能编写如下代码。但由于它是一个对象而不是一个类,我不能注入BlogService,因此无法访问它。对于这样的问题,最好的解决方案是什么?
object Helpers {
def postTitle(user: User) = {
val post: Future[Option[Blog]] = blogService.retrieve(user).headOption
Await.ready(post, Duration.Inf).value.get {
case Success(Some(pst) => pst
case Success(None) => None
}
some other helper methods...
}