必要な暗黙の実際のコードは次のとおりです。私自身の型にもこれらがたくさんあるので、それらを別のオブジェクトに入れました。Form
このように sでカスタム型を使用できるのは非常に便利です。
object FormFieldImplicits {
// Code merged into future Play release
//
implicit def doubleFormat = new Formatter[Double] {
def bind(key: String, data: Map[String, String]) = Right(data(key).toDouble)
def unbind(key: String, value: Double) = Map(key -> value.toString)
}
...
}
次に、次のように a と Bob's your uncleimport FormFieldImplicits._
を使用するコントローラーでmapping
of[Double]
def impactMapping = mapping(
"value" -> of[Double],
"percent" -> of[Double])(Impact.apply)(Impact.unapply)