2014-06-30 55 views

回答

1

我需要審計和記錄一些東西,然後重定向通常流程

我能看到你這個打算,但我會建議Action Composition會是一個更好的方法。這樣,您就可以擁有一個可重用,可測試,專注於代碼的代碼,只需執行您的審計和日誌記錄即可。

例如:(完全未經測試):

import play.api.mvc._ 

object AuditAction extends ActionBuilder[Request] { 
    def invokeBlock[A](request: Request[A], block: (Request[A]) => Future[Result]) = { 
     Logger.info("Action is being audited") 
     YourAuditingLoggerHere.logAudit(request) 
     block(request) 
    } 
} 

而在你的控制器:

def submitAuditiableThing = AuditAction { implicit request => 
    YourBusinessLogicHere() 
    Ok(views.html.success) 
}