Scala:不是(String,models.Role)的成员

时间:2014-02-13 02:42:32

标签: scala slick

我正在努力保护我的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”。有人可以解释一下吗

1 个答案:

答案 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"
  }
}