Scala CRUDify MegaProtoUser-这是正确的解决方案吗?
我在Scala 2.9.1中使用liftweb 2.5-SNAPSHOT 在我的lift应用程序中,我希望使用一个用户类,该类同时具有MegaProtoUser特性(用于每个用户的自我管理)和CRUDify特性(用于管理员的CRUD视图) 当我尝试一种简单的方法并同时使用这两个traint为用户扩展我的模型对象时,我会得到编译错误,因为这两个trait在不使用覆盖的情况下有几个共同部分(函数和类型) 相反,我对两个模型对象使用以下方法:Scala CRUDify MegaProtoUser-这是正确的解决方案吗?,scala,lift,crud,Scala,Lift,Crud,我在Scala 2.9.1中使用liftweb 2.5-SNAPSHOT 在我的lift应用程序中,我希望使用一个用户类,该类同时具有MegaProtoUser特性(用于每个用户的自我管理)和CRUDify特性(用于管理员的CRUD视图) 当我尝试一种简单的方法并同时使用这两个traint为用户扩展我的模型对象时,我会得到编译错误,因为这两个trait在不使用覆盖的情况下有几个共同部分(函数和类型) 相反,我对两个模型对象使用以下方法: import net.liftweb.mapper._
import net.liftweb.mapper._
/**
* Entity class for users
*/
class User extends MegaProtoUser[User] {
override def getSingleton = User
}
/**
* Provides the meta model for User together with the self administration features for each user
*/
object User extends User with MetaMegaProtoUser[User] {
override def dbTableName = "users"
}
/**
* Again the meta model for User, but this time without self administration but with the CRUD view for the administrator
*/
object UserAdministration extends User with KeyedMetaMapper[Long, User] with ProtoUser[User] with CRUDify[Long, User] {
override def dbTableName = User.dbTableName
}
这种方法似乎有效,但我不确定是否遗漏了一些细节