当我使用 Play Forms 将请求映射到对象时,我希望能够接触到用户。为了让事情变得更简单,我还使用了 SecureSocial 框架,request.user
securesocial.core.SocialUser 也是如此。
下面的代码是有问题的,因为映射的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)
})
}
感谢您的帮助。
谢谢