2016-05-03 38 views
0

该代码查找系统并将其与来自表单的收到的系统进行比较。如何进行未来的备份

如果在DB中找到了faculty,那么它会将该组添加到数据库中,然后将其实际重定向到同一页面,但在GET中(这是POST方法)。

问题是我需要重定向,如果它没有添加该组。也许,有人知道如何使这个简单而整齐?

def addGroup() = Action.async { 
    implicit request => 
     GroupForm.form.bindFromRequest.fold(
     errorForm => ???, 
     data => { 
      (for { 
      seqOfFaculties <- FacultyService.getAllFaculties 
      future <- GroupService.addGroup(Group(0, data.nameGroup, data.faculty)) if seqOfFaculties.exists(_.name == data.faculty) 
      } yield future).map(_ => Redirect(routes.GroupController.get())) 
     }) 
    } 

回答

0

也许是这样的:

FacultyService.getAllFaculties.map { seqOfFaculties => 
    if (seqOfFaculties.exists { _.name == "something" }) { 
     Ok // or something else... 
    } else { 
     Redirect(routes.GroupController.get()) 
    } 
} 

使用if语句时一个换理解内侧Future·您应该小心。你可以得到一个例外...... :)(没有任何处理它)