播放路线语法以忽略段塞的一部分

use*_*922 6 scala playframework playframework-2.0

我们想要的基本上是这样的:

/foo/*                 controllers.FooController.foo
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

我们找到了以下解决方法:

/foo/*ignore           controllers.FooController.foo(ignore)
Run Code Online (Sandbox Code Playgroud)

但这使得该方法的代码controllers.FooController.foo略显难看.有一个更好的方法吗?

and*_*lla 2

看看这里的代码,路由器无法在不指定...的情况下处理“slug”部分identifier...解析器组合器没有将其声明为可选,并且map( ^^) 显然按原样使用它。

如果它不会引起其他问题,即模式将隐藏所有其他路由,因为它在文件中定义得更高(甚至最糟糕,包括在内),那么它可能是一个很好的功能请求。

看起来这是故意做的,如果我们看这里,我们可以发现动态参数不能被分配默认值——事实上,在这种情况下我们会陷入我刚才提到的情况:-/ 。

我的第一个建议是告诉您使用ignoreasOption[String]和将其设置为的操作定义None(而不是空,String因为它更具表现力)。我的第二个想法是激发您想知道这种情况是否真的相关,因为它很容易出错并且可能隐藏更多问题