Routen mit optionalem Parameter - Spielen Sie 2.1 Scala

In Play 2.0 hatte ich also Folgendes:

GET     /tasks/add              controllers.Tasks.addTask(parentId: Option[Long] = None)
GET     /tasks/:parentId/add    controllers.Tasks.addTask(parentId: Option[Long])

Mit einer Controller-Methode wie dieser:

def addTask(parentId: Option[Long]) = Action { 
    Ok(views.html.addTask(taskForm, parentId))  
}

Und es hat funktioniert. Als ich auf 2.1 umgestiegen bin, scheint es über diese Zeilen zu klagen mit:No URL path binder found for type Option[Long]. Try to implement an implicit PathBindable for this type. Grundsätzlich versuche ich, Route zu habentasks/add und Routetasks/123/add Link auf die gleiche Methode, die ein akzeptiertOptional[Long]. Irgendeine Idee, wie das geht? Vielen Dank.

Ok, sozusagen ist es kein Fehler, sondern eine Funktionsreaktion von Lighthouse: "Wir haben die Option [Long] -Unterstützung für Pfadbindungen entfernt, da es keinen Sinn macht, einen optionalen Pfadparameter zu haben. Sie können Ihren eigenen implementieren Pfad bindbar, der es unterstützt, wenn Sie bitte. " Bisher habe ich 2 Lösungen, die -1 als parentId übergeben, was mir nicht wirklich gefällt. Oder 2 verschiedene Methoden zu haben, was in diesem Fall wahrscheinlich sinnvoller ist. Die Implementierung von PathBindable scheint momentan nicht allzu realisierbar zu sein, daher werde ich mich wahrscheinlich an 2 Methoden halten.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage