2016-02-18 30 views
6

ho questo controllore a Scala:Scala - Non è possibile utilizzare un metodo di ritorno play.api.mvc.Result come gestore per le richieste

def commonRedirect(anId: Long) = { 
implicit val aRule = CommonClient.getTheRule(anId) 
aRule match { 
    case false ⇒ Redirect("/general-rule/" + anId) 
    case true ⇒ Redirect("/custom-rule/" + anId) 
} 

}

ma, questo risultato nell'errore: " Non è possibile utilizzare un metodo per restituire play.api.mvc.Result come gestore per le richieste ".

Se applico un generatore di azioni, funziona, ma questo non è il modo che voglio.

Qualche idea per risolvere questo problema?

Grazie.

+0

Potete specificare come si desidera utilizzare 'commonRedirect'. Non ho errori con il tuo codice. –

risposta

11

È necessario creare un Action.

def commonRedirect(anId: Long) = Action { 
    implicit val aRule = CommonClient.getTheRule(anId) 
    aRule match { 
    case false ⇒ Redirect("/general-rule/" + anId) 
    case true ⇒ Redirect("/custom-rule/" + anId) 
    } 
} 
+0

Grazie a @ paul-draper. Ho trovato in http://stackoverflow.com/a/28247637/1665906 che il tipo richiesto non è solo "Risultato" ma "⇒ Risultato", e questa è un'azione. – Lucas