ここでは、scala初心者の私がscala+play framework2.4のフォームヘルパーを使う際にはまったことを書きたいと思います
環境
・ubuntu14.04
・scala
・play framework2.4
ハマったこと
フォームヘルパーを利用する際に、case classを使ったフォームの定義をcontrollerクラス内で指定していたため、実行時にtype mismatch;のエラーが発生していました。
解決策
case classを別ファイルに定義し、controllerではそれをimportすることでエラーが発生しなくなりました。また、クラス定義を以下のように修正しておきます。
以下に修正後のソースを抜粋します。
modelsのパッケージ内に以下の名前でファイルを作成します。
models/Myform.scala
case class MyFormData(name:String, mail:String)
controllers/HomeController.scala
import models.MyFormData
class HomeController @Inject() (val messagesApi: MessagesApi) extends Controller with I18nSupport {
--中略--
}
これで動くようになりました。
以上です。