0

Playフォームを使用してリクエストをオブジェクトにマッピングするときに、ユーザーにアクセスできるようにしたいと思います。さらに面倒なことに、私はSecureSocialフレームワークも使用しているので、securesocial.core.SocialUserも使用していrequest.userます。

以下のコードは、マップされたdocオブジェクトが不変のケースクラスであり、再割り当てできないため、問題がありますlender。可能であれば、不変性を維持したいと思います。

私はScalaの初心者なので、進め方がわかりません。

def create = SecuredAction() { implicit request =>
    models.Lendable.form.bindFromRequest.fold(
        errors => {
            BadRequest(errors.errorsAsJson)
        },
        doc => AsyncResult {
            // TODO: set the lender without mutating a val
            doc.lender = models.User.fromSocialUser(request.user)

            collection.insert(doc.copy()).map(_ => Ok)
        })
}

あなたの助けをいただければ幸いです。

ありがとう

4

1 に答える 1

1

あなたはそうすることができます:

doc => AsyncResult {
     val toInsert = doc.copy(lender = models.User.fromSecureUser(request.user))
     collection.insert(toInsert).map(_ => Ok)
}
于 2013-02-25T13:39:57.310 に答える