Scala Play框架表单,类型不会自动推断为元组参数

时间:2014-12-30 12:27:49

标签: scala types playframework

我正在学习在Play Framework中使用表单,我遇到了以下问题。我有一个这样的案例类:

case class Part(id:          Option[Int],
                description: String,
                created:     DateTime)

我正在尝试从/向这样定义的播放表单中检索/填充它:

val addPartForm = Form(
    mapping(
        "description" -> text
    )(tp => Part.apply(id = None, description = tp._1, created = new DateTime()))
     (pt => (pt.description)))

所以基本上我正在尝试提供自定义映射函数,因为通常的Part.apply和Part.unapply版本不是完全匹配/映射。当我尝试编译此代码时,它会在tp参数上显示错误missing parameter type。为什么tp的类型无法自动推断?如果我明确提供tp的类型,它会编译。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

尝试按如下方式描述生成的元组:

val addPartForm = Form(
   mapping(
      "description" -> text
   )((description) => Part(id = None, description = description, created = new DateTime()))
   (part => Some(part.description))
)