Vì vậy, trong Chơi 2.0 Tôi có điều này:đường với tham số tùy chọn - Chơi 2.1 Scala
GET /tasks/add controllers.Tasks.addTask(parentId: Option[Long] = None)
GET /tasks/:parentId/add controllers.Tasks.addTask(parentId: Option[Long])
Với một phương pháp điều khiển như thế này:
def addTask(parentId: Option[Long]) = Action {
Ok(views.html.addTask(taskForm, parentId))
}
Và nó đã làm việc. Khi tôi di chuyển sang 2.1, có vẻ như khiếu nại về những dòng này: No URL path binder found for type Option[Long]. Try to implement an implicit PathBindable for this type.
Về cơ bản, những gì tôi đang cố gắng hoàn thành là có tuyến đường tasks/add
và tuyến đường tasks/123/add
liên kết đến cùng một phương thức chấp nhận Optional[Long]
. Bất kỳ ý tưởng làm thế nào để làm điều này? Cảm ơn. Ok, vì vậy tôi đã nhận được một loại nó không phải là một lỗi, nó là một phản ứng tính năng trên Lighthouse: "Chúng tôi đã xóa tùy chọn [Long] hỗ trợ trong đường dẫn bindables vì nó không có ý nghĩa để có một tham số đường dẫn tùy chọn. có thể thực hiện đường dẫn của riêng bạn có thể ràng buộc hỗ trợ nó nếu bạn muốn. " Cho đến nay tôi có 2 giải pháp, đi qua -1 như parentId, mà tôi không thực sự thích. Hoặc có 2 phương pháp khác nhau, có thể có ý nghĩa hơn trong trường hợp này. Việc triển khai PathBindable dường như không khả thi lắm, vì vậy tôi có thể sẽ có 2 phương thức.
Cảm ơn, tôi đã báo cáo. Bạn có bất kỳ ý tưởng làm thế nào để có được những hành vi mong muốn mà không cần phải chờ đợi một bugfix? – Laky
Ok, vì vậy: "Chúng tôi đã xóa tùy chọn [Long] hỗ trợ trong đường dẫn ràng buộc vì không có ý nghĩa để có tham số đường dẫn tùy chọn. Bạn có thể triển khai đường dẫn của riêng bạn có thể ràng buộc hỗ trợ nó nếu bạn muốn." Nhưng đi qua một tùy chọn thay vì một số giá trị tùy ý dường như với tôi rất nhiều đẹp hơn. Đó không phải là lý do chúng ta có tùy chọn ở nơi đầu tiên sao? Có lẽ tôi sẽ tạo ra 2 phương pháp khác nhau trong trường hợp này, vì nó sẽ có ý nghĩa hơn so với truyền -1 là id. – Laky
Có bạn đúng, điều đó tốt hơn nhiều. Tuy nhiên, tôi không hiểu quyết định của họ, tại sao xóa nội dung nào đó cho phép các URL đẹp hơn? –