在Lift中,整个ProtoUser构造非常棒,令人惊叹的是它为你做了什么,大部分优点(很遗憾,很多东西都没有)没有记录.
只有一个问题:它包含我不需要的数据,甚至包含我不想要的数据.例如,我希望我的用户通过昵称登录,而我不需要知道他的位置,区域设置或名/姓.但在注册时,我需要标准注册页面上未显示的信息.
我的第一个想法是重写我自己的用户特征,但后来我必须重新编写所有的会话代码,授权等.是否已有替代方案?或者是否可以改变ProtoUser我自己的注册和登录页面,以及只有我需要的数据?
谢谢收听.
我不确定是否有任何简单的方法可以删除 ProtoUser 中的任何字段,但一种选择是查看 ProtoUser 中的 fieldOrder 方法,我相信它定义了 protoUser 使用的字段。至于注册问题,有一个方法 signUpFields 可以让您覆盖注册时需要的字段,如下所示
override def signupFields = email :: userName :: password :: Nil
假设您定义自己的 userName 对象。editFields 还有一个类似的方法,这实际上并不能解决删除它跟踪的字段的问题,但也许 fieldOrder 可能会做一些事情,我的另一个建议是查看 Proto User 的源代码,看看您是否也许可以覆盖映射的对象并使映射器以某种方式忽略它们。这仍然只是解决 Proto User 的一种方法,以避免重写它包含的大量代码。