2012-07-06 7 views
7

Estoy tratando de definir una ruta con una lista opcional como parámetro de consulta2.0: lista opcional de consulta

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

pero conseguir este error

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

Sé Play 2 mangos Option s bueno, y quiero que pase Seq a mi medida personalizada QueryStringBindable, ¿cómo lograr esto?

Respuesta

7

Parece que el analizador de enrutamiento Play 2.0.2 no admite parámetros de tipo de anidamiento. He encontrado solución, he definido alias para Seq[Int]:

type IntSeq = Seq[Int] 

y lo utilizó en lugar del tipo original:

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

ahora funciona como se esperaba.

+0

¿Dónde puedo definir este tipo en mi código? No puedo ponerlo en el archivo de rutas ... –

+1

@JacobLyles Puedes definirlo en cualquier lugar (excepto el archivo de rutas, por supuesto), y luego importarlo especificando 'routesImport + =" your.namespace.IntSeq "' en su sección de configuración 'Build.scala'. – lambdas

+0

¿Sigue siendo así en las siguientes versiones de Play? –