リクエストからフォームをバインドしようとすると、返されたオブジェクトに初期値が設定されます。フォームが正しく表示されます。
def event(id: Int) = Action {
val event : Event = Event.event(id)
Ok(views.html.eventForm(eventForm.fill(event)))}
def update() = Action { implicit request =>
eventForm.bindFromRequest.fold(
formWithErrors => BadRequest(views.html.eventForm(formWithErrors)),
updatedEvent => {
Event.update(updatedEvent)
Redirect(routes.Events.all())
}
)}
コードをデバッグすると、リスト内の各フィールドの元のデータと新しいデータの両方がリクエストに含まれていることがわかりました。ただし、updatedEvent
返された にはevent
呼び出しからの元のデータが含まれています。
カスタム フィールド コンストラクターを使用していますが、それがどのようにこの問題を引き起こすのかわかりません。
Git で多数の例を見てきましたが、何が問題なのかわかりません。
編集:
リクエストをバインドするときの別のフォームからのデバッグ データは次のとおりです。
バインド後のフォーム = Map(パスワード -> , メール -> )
request = Map(password -> List(, 32131), email -> List(, , some.email@yahoo.com))
必要なデータはリクエストに含まれていますが、正しくバインドされていません。