Rotas com parâmetro opcional - Reproduzir 2.1 Scala
Então, no Play 2.0 eu tive isso:
GET /tasks/add controllers.Tasks.addTask(parentId: Option[Long] = None)
GET /tasks/:parentId/add controllers.Tasks.addTask(parentId: Option[Long])
Com um método de controle como este:
def addTask(parentId: Option[Long]) = Action {
Ok(views.html.addTask(taskForm, parentId))
}
E estava funcionando. Quando migrei para o 2.1, parece que se queixam destas linhas com:No URL path binder found for type Option[Long]. Try to implement an implicit PathBindable for this type.
Basicamente, o que estou tentando fazer é ter rotatasks/add
e rotatasks/123/add
link para o mesmo método que aceita umOptional[Long]
. Alguma idéia de como fazer isso? Obrigado.
Ok, então eu peguei uma espécie de bug, é uma resposta de recurso no Lighthouse: "Nós removemos o suporte Option [Long] em bindable de caminho, pois não faz sentido ter um parâmetro de caminho opcional. Você pode implementar o seu próprio caminho bindable que suporta, se quiser ". Até agora eu tenho 2 soluções, passando -1 como parentId, que eu realmente não gosto. Ou ter 2 métodos diferentes, o que provavelmente faz mais sentido neste caso. Implementar o PathBindable não parece muito viável agora, então provavelmente vou ficar com 2 métodos.