Сводка: Я извлекаю список идентификаторов пользователей из таблицы транзакций участников, которая затем используется для создания списка пользователей из базы данных. Затем он используется для генерации JSON, отправляемого на страницу со списком пользователей, связанных с учетной записью.
Фон: Scala-код с использованием Squeryl на Play! Framework
Ошибка: value id is not a member of Option[models.User]
при сопоставлении пользователей с генератором JSON
Код: Вот код, используемый последовательно для окончательной генерации JSON
def memberIds(accountId: Long) = { from(DB.members)(m =>
where(m.accountId === accountId)
select (m)).map(_.userId).toSet
}
def membersToAccount(id: Long) = {
memberIds(id).map( i => models.User.get(i))
}
def listMembers(accountId: Long) = {
Json(generate(Account.membersToAccount(accountId)
.map(user => Map(
"id" -> user.id,
"name" -> user.name,
"username" -> user.username
))))
}
Путаница: Класс User содержит идентификатор val, который выглядит как case class User(
val id: Long, etc.
Я не понимаю, почему он может создать эту ошибку. Это проблема с синтаксисом или где я отображаю пользователей? Спасибо!