适用于案例类中的省略参数

时间:2015-09-12 14:32:28

标签: scala playframework-2.0

燮, 我试图用Play2反序列化表单数据,但我遇到了一个小问题。

代码:https://gist.github.com/Hajtosek/a355b800f334a584a547

implicit val registerForm = Form(
    mapping(
      "name" -> text,
      "surname" -> text,
      "login" -> text,
      "password" -> text,
      "email" -> text
    )
  )(User.apply)(User.unapply)
  implicit val userFormat = Json.format[User]
}

case class UserLoginData(login: String, password: String)

object User {
  def apply(name: String, surname: String, login: String, password: String, email: String) =
    new User(name, surname, login, password, email, List())
}

case class User(name: String, surname: String, login: String, password: String, email: String, skillSet: List[SkillRecord] = List()) {

}

我从表单中获取的数据是(String,String,String,String,String) 但是我的case类需要(String,String,String,String,String,List [myCustomThing])。

当我将鼠标悬停在我的ide中的红色文本上时,提示说没有足够的方法申请方法(字符串,字符串,字符串,字符串,字符串)

这是我的新项目的注册表单,我试图覆盖同伴对象中的应用,但这也没有用。我也尝试过默认值和选项类似的结果。有什么建议吗?

此致

Haito

1 个答案:

答案 0 :(得分:2)

您可以使用忽略的函数来定义字段的值

implicit val registerForm = Form(
    mapping(
      "name" -> text,
      "surname" -> text,
      "login" -> text,
      "password" -> text,
      "email" -> text,
      "skillSet" -> ignored(List.empty[SkillRecord])
    )
  )(User.apply)(User.unapply)