Lucas
Lucas

Reputation: 347

Scala - Cannot use a method returning play.api.mvc.Result as a Handler for requests

I have this controller in Scala:

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

}

but, this result in the error: "Cannot use a method returning play.api.mvc.Result as a Handler for requests".

If I apply an Action Builder, it works, but this is not the way that I want.

Any ideas to resolve this?

Thanks.

Upvotes: 9

Views: 4230

Answers (1)

Paul Draper
Paul Draper

Reputation: 83205

You need to make an 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)
  }
}

Upvotes: 14

Related Questions