単純なモデルオブジェクトがあります。
case class Region(id: String, revision: Option[String], name: String)
object Region {
// Returns Some(region) if successful, None if revision doesn't match the latest
// in the data store
def insertOrUpdate(region: Region): Promise[Option[Region]]
}
私のコントローラーでは、このようなことをしたいのですが、応答でロックの失敗を示す方法がわかりません。グローバルフォームエラーを追加したいのですが、APIからその方法を確認できません。
def update(id: String) = Action {
implicit request => regionForm.bindFromRequest.fold(
formWithErrors => BadRequest(views.html.regions.edit(formWithErrors)),
region => Async{
Region.insertOrUpdate(region).map{
_ match {
case None => {
// How do I add a global form error indicating there were server side changes detected
BadRequest(views.html.regions.edit(regionForm.fill(region))
}
case Some(r) => Redirect(views.html.regions.index).flashing(("success", "Update successful")
}
}
)
}