我正在努力保护我的Scala应用。这是我的代码:
case class User(id: Option[Long],
role: Role)
我试图通过这样做来获得特定用户的角色:
def authenticate(id: Long): String = db withSession { implicit db: Session =>
val u = findUserById(id)
u.role
}
found : models.Role
[error] required: String
我猜models.Role
等于(String, models.Role)
。
我期待回到“UserRole”或“AdminRole”。有人可以解释一下吗
答案 0 :(得分:0)
您的authenticate方法声明表明它返回String,但您返回一个Role。似乎findUserById返回角色所以我的猜测将是例如:
def authenticate(id: Long): String = db withSession { implicit db: Session =>
findUserById(id) match {
case ar: AdminRole => "AdminRole"
case ur: UserRole => "UserRole"
}
}