2012-03-26 4 views
3

Definieren eines Formulars in meinem Play! Controller, wenn der Compiler diesen seltsamen Fehler ausspuckt: overloaded method value mapping with alternative:...[a bunch of crap]...Error occurred in an application involving default arguments.Spielen! Fehler überladen Methodenwert-Mapping mit Alternativen?

Hier ist der Code, ich bin nicht wirklich sicher, was die Ursache sein könnte: bei der Wiedergabe

val jobForm: Form[Job] = Form(
    mapping(
     "id" -> of[Long], 
     "end_time" -> text(minLength = 3), 
     "start_time" -> text(minLength = 3), 
     "client_id" -> of[Long], 
     "start_address_type" -> text, 
     "start_address" -> text(minLength = 3), 
     "start_city" -> text(minLength = 3), 
     "start_province" -> text(minLength = 2), 
     "start_lat" -> optional(text), 
     "start_lng" -> optional(text), 
     "comments" -> text, 
     "created" -> text, 
     "modified" -> text, 
     "canceled" -> of[Boolean], 
     "started" -> of[Boolean], 
     "completed" -> of[Boolean], 
     "user_id" -> optional(of[Long]), 
     "start_order" -> optional(number), 
     "end_order" -> optional(number), 
     "account_id" -> of[Long] 
    )(Job.apply)(Job.unapply) 
) 

Antwort

4

hat einen Blick! 2.0 Quelle. Es sieht so aus, als ob du maximal 18 Argumente pro mapping() haben kannst, also musste ich mit der Verschachtelung beginnen und neue Fallklassen erstellen. Hier ist das Ergebnis:

val jobForm: Form[JobSimple] = Form(
    mapping(
     "id" -> of[Long], 
     "end_time" -> text(minLength = 3), 
     "start_time" -> text(minLength = 3), 
     "client_id" -> of[Long], 
     "location" -> mapping(
     "start_address_type" -> text, 
     "start_address" -> text(minLength = 3), 
     "start_city" -> text(minLength = 3), 
     "start_province" -> text(minLength = 2), 
     "start_lat" -> optional(text), 
     "start_lng" -> optional(text) 
     )(JobLocation.apply)(JobLocation.unapply), 
     "comments" -> text, 
     "created" -> text, 
     "modified" -> text, 
     "canceled" -> of[Boolean], 
     "started" -> of[Boolean], 
     "completed" -> of[Boolean], 
     "user_id" -> optional(of[Long]), 
     "start_order" -> optional(number), 
     "account_id" -> of[Long] 
    )(JobSimple.apply)(JobSimple.unapply) 
) 
+0

Ja, ich weiß nicht, warum sie keine Fall Klassen Begrenzung von 22 Feldern unterstützen. –