我有一个播放框架应用程序和一个有问题的操作。我尝试使用parse.form
解析请求正文,然后针对该已解析的正文运行ActionFilter
。
到目前为止,我有类似的东西
object ModelValidationAction extends ActionFilter[Request[MyModel]]{
def filter[A <: MyModel](request: Request[A]) = ???
}
def routePointsHere = (Action(parse.form(myModelForm)) andThen ModelValidationAction) { (request: Request[MyModel]) => ??? }
然而IDEA给了我错误提示
预期行动[MyModel] =&gt; NotInferredA,实际的ModelValidationAction.type
并且编译器告诉我
...方法的缺失参数列表适用于特征ActionBuilder
[错误]未应用的方法仅在需要函数类型时转换为函数。 [错误]您可以通过撰写apply _
或apply(_)(_)
代替apply
来明确转换此内容。
所以我可以认为问题是方法apply[A](bodyParser: BodyParser[A])(block: R[A] => Result): Action[A]
围绕第二个参数列表没有被填充的事实,但我不确切地知道语言在这里的行为。
我的(完全没有根据的)假设Action(parse.form(myModelForm))
将成为Request[MyModel] => Result
,而调用andThen
会返回相同的内容。
关于我错过的内容的任何指示?谢谢!