Reputation: 2996
I have a pretty extensive form defined as;
case class EditDetail(token: String,
placeId: Long,
// accessibility
privateParking: Option[Boolean],
privateParkingType: Option[Int], // 0: internal, 1: external, 3: street
bikeParking: Option[Boolean],
valetService: Option[Boolean],
wheelChairAccess: Option[Boolean],
// facilities
cashOnly: Option[Boolean],
paymentMeans: Option[List[String]], // comma separated Option[List[String]]s
wifi: Option[Int],
smoking: Option[Boolean],
aircon: Option[Boolean],
// dining
dietaryRestrictions: Option[List[String]],
mealsServed: Option[List[String]],
alcoholChoice: Option[List[String]],
outdoorSeating: Option[Boolean],
catering: Option[Boolean],
// reservation
acceptsReservations: Option[Int] /*, // 0: no, 1: yes, 2: only groups
reservationMethods: Option[List[String]], // <-- the problem area
reservationUrl: Option[String],
groupSizeMin: Option[Int],
groupSizeMax: Option[Int],
// delivery & takeaway
delivery: Option[Boolean],
minDeliveryAmt: Option[BigDecimal],
takeAway: Option[Boolean],
// atomosphere
musicType: Option[List[String]],
ambiance: Option[List[String]],
attire: Option[List[String]],
surrounding: Option[List[String]],
viewPoint: Option[Boolean],
goodForKids: Option[Boolean],
tv: Option[Boolean],
sportsFeatured: Option[List[String]]*/) {
var place: Place = _
var user: User = _
}
var editDetailForm = Form(
mapping(
"token" -> nonEmptyText,
"place_id" -> longNumber,
/*ACCESSIBILITY*/
"private_parking" -> optional(boolean),
"private_parking_type" -> optional(number(0, 3)),
"bike_parking" -> optional(boolean),
"valet_service" -> optional(boolean),
"wheelchair_access" -> optional(boolean),
/*FACILITIES*/
"cash_only" -> optional(boolean),
"payment_means" -> optional(list(text)),
"wifi" -> optional(number(0, 2)),
"smoking" -> optional(boolean),
"aircon" -> optional(boolean),
// /*DINING OPTIONS*/
"dietary_restrictions" -> optional(list(text)),
"meals_served" -> optional(list(text)),
"alcohol_choice" -> optional(list(text)),
"outdoor_seating" -> optional(boolean),
"catering" -> optional(boolean),
/*RESERVATIONS*/
"accepts_reservations" -> optional(number)
// "reservation_methods" -> optional(list(text)) // <-- problem area
// "reservation_url" -> optional(text),
// "group_size_min" -> optional(number(0)),
// "group_size_max" -> optional(number(0)),
// /*DELIVERY & TAKEAWAY*/
// "delivery" -> optional(boolean),
// "min_delivery_amount" -> optional(bigDecimal),
// "takeaway" -> optional(boolean),
// /*ATMOSPHERE*/
// "music_type" -> optional(list(text)),
// "ambiance" -> optional(list(text)),
// "attire" -> optional(list(text)),
// "surrounding" -> optional(list(text)),
// "view_point" -> optional(boolean),
// "good_for_kids" -> optional(boolean),
// "tv" -> optional(boolean),
// "sports_featured" -> optional(list(text))
)(EditDetail.apply)(EditDetail.unapply))
If you see the code above and see the line marked with <-- problem area
, if I uncomment that line in the EditDetail
and in editDetailForm
, I get this:
Cannot resolve method apply with such signature: Missing arguments
Why?
Upvotes: 3
Views: 1310
Reputation:
That's because you exceeded the maximum number of fields for a single tuple (18), here is what the Play doc says:
Note: Maximum number of fields for a single tuple or mapping is 18 due to the way form handling is implemented. If you have more than 18 fields in your form, you should break down your forms using lists or nested values.
Upvotes: 7