生成されたモデルのIDを応答でバックボーンに戻す必要があります。したがって、コントローラーでは次のようなことができます。
def create = Action { implicit request =>
employeeForm.bindFromRequest.fold(
errors => BadRequest,
employee => {
Ok(Employee.create(employee).toString())
})
}
次に、次のようにモデルの作成メソッドを定義します。
def create(employee: Employee): Long = {
DB.withConnection { implicit connection =>
SQL("insert into employee(first_name, last_name) values ({fname}, {lname})").on(
'fname -> employee.fname,
'lname -> employee.lname
).executeInsert()
} match {
case Some(long) => long
case None => 0
}
}
そして、ビューのbackbone.jsで、次のようにcreateの成功コールバックを定義します。
app.employeeList.create(@model,
wait: true
success: _.bind((model, response)->
@model.set("id", response)
返されたIDが0の場合に、ある種のエラー処理を追加することもできます。また、バックエンドに何を使用しているかはわかりませんが、このコードはPlay 2/Scala用です。(そして、CoffeeScriptについては申し訳ありませんが、JSが必要な場合はお知らせください)