2012-07-06 27 views
7

Tôi đang cố gắng để xác định một lộ trình với một danh sách tùy chọn như tham số truy vấnChơi 2.0: danh sách tùy chọn trong truy vấn

GET /places controllers.Application.query(filter: Option[Seq[Int]]) 

nhưng nhận được lỗi này

conf/routes - PlayException: Compilation error [`)' expected but `]' found] 

Tôi biết chơi 2 xử lý Option s tốt, và tôi muốn nó vượt qua Seq để tuỳ chỉnh QueryStringBindable của tôi, làm thế nào để đạt được điều này?

Trả lời

7

Dường như trình phân tích cú pháp định tuyến Play 2.0.2 không hỗ trợ các thông số kiểu lồng. Tôi đã tìm thấy cách giải quyết, tôi đã xác định bí danh cho Seq[Int]:

type IntSeq = Seq[Int] 

và sử dụng nó thay vì loại gốc:

GET /places controllers.Application.query(filter: Option[IntSeq]) 

Bây giờ nó hoạt động như mong đợi.

+0

Tôi có thể xác định loại này trong mã của mình ở đâu? Tôi không thể đặt nó trong các tập tin tuyến đường ... –

+1

@ JacobLyles Bạn có thể định nghĩa nó ở bất cứ nơi nào (ngoại trừ các tập tin tuyến đường của khóa học), và sau đó nhập nó bằng cách chỉ định 'routesImport + =" your.namespace.IntSeq "' trong phần cài đặt 'Build.scala' của bạn. – lambdas

+0

Đây có phải là trường hợp trong các phiên bản Play tiếp theo không? –

Các vấn đề liên quan