想象一下,我有一个这样的案例类:
case class Team(_id: Option[BSONObjectID], name: String = "", city: String = "", country: String = "")
并将其传递到我的模板中(在 Play 2.5/Scala/reactiveMongo 0.11.14 中),如下所示:
@(teams : Seq[models.Team])
...
@for(team <- teams){
<tr>
<td>@team._id</td>
<td>@team.name</td>
<td>@team.city</td>
<td>@team.country</td>
</tr>
}
...
我需要将@team._id
(当前是 type Option[BSONObjectID]
)获取到 a string
- 所以只是BSONObjectID
字符作为 a string
。我一直在尝试声明此处记录的可重用值,但我似乎无法做到正确。通常我会使用,但这在模板中没有按预期工作。谢谢你的帮助!flatMap
从这里开始,现在似乎我应该按照@marcospereira 的建议在案例类中使用一个方法。但是,我对正则表达式中的语法有点卡住(不足为奇!)。所以我正在尝试制作这样的字符串 - BSONObjectID("59654f33b17946eac2323b3e")
be just 59654f33b17946eac2323b3e
. 这就是我所拥有的:
def idAsString = _id.flatMap(bson => """\".*?(")""".r.findFirstIn(bson.toString)).getOrElse("")
但这也会返回引号,例如"59654f33b17946eac2323b3e"
. 如前所述,我不想要那些-感谢任何可以帮助解决此问题的人,因为我无法完全正确地使用语法。