Маршруты с необязательным параметром - Play 2.1 Scala
Итак, в Play 2.0 у меня было это:
GET /tasks/add controllers.Tasks.addTask(parentId: Option[Long] = None)
GET /tasks/:parentId/add controllers.Tasks.addTask(parentId: Option[Long])
С помощью метода контроллера, подобного этому:
def addTask(parentId: Option[Long]) = Action {
Ok(views.html.addTask(taskForm, parentId))
}
И это работало. Когда я перешел на 2.1, кажется, что жалуются на эти строки с:No URL path binder found for type Option[Long]. Try to implement an implicit PathBindable for this type.
По сути, я пытаюсь достичь маршрутаtasks/add
и маршрутtasks/123/add
ссылка на тот же метод, который принимаетOptional[Long]
, есть идеи как это сделать? Благодарю.
Итак, я получил видэто не ошибка, этоРеакция на Маяк: "Мы убрали поддержку Option [Long] в связываемых путях, так какНе имеет смысла иметь необязательный параметр пути. Вы можете реализовать свой собственный связываемый путь, который поддерживает его, если хотите. " Пока у меня есть 2 решения, передавая -1 в качестве parentId, что мне не очень нравится. Или иметь 2 разных метода, что, вероятно, имеет больше смысла в этом случае. Реализация PathBindable не делаетсейчас это кажется слишком выполнимым, поэтому я, вероятно, буду придерживаться двух методов.