Я пишу небольшое приложение для хобби. Теперь в моем приложении я хочу, чтобы у людей был userId (так же, как у меня есть niklassaers здесь, при переполнении стека), и если он уже сделан, я хочу, чтобы пользователь получил ошибку, чтобы он мог выбрать другую.Пользовательская проверка формы Play 2.0 (scala)
Здесь следует мой объект Registration, он дает мне ошибку в строке «mapping (»: «отсутствующие аргументы для сопоставления методов в объектных формах», следуйте этому методу с помощью «_», если вы хотите рассматривать его как частично примененное функция»
object Signup extends Controller {
val userForm: Form[UserProfile] = Form(
mapping(
"userId" -> nonEmptyText,
"passwordHash" -> nonEmptyText,
"email" -> email
) verifying (
"ThisIsATest", { case(userId, passwordHash, email) => true }
// "UserID already taken", { DBService.exists(UserProfile.getClass().getName(), userId) }
)(UserProfile.apply)(UserProfile.unapply))
def index = Action {
Ok(views.html.signup(userForm))
}
def register = Action { implicit request =>
userForm.bindFromRequest.fold(
errors => BadRequest(views.html.signup(errors)),
user => Redirect(routes.Profile.index))
}
}
Как вы можете видеть, я заменил мою службу поиска с помощью контрольной проверки, которая просто возвращает TRUE, чтобы сделать пример менее сложным для полноты, это мой UserDetail случая класс:.
case class UserProfile(
userId : String,
email: String,
passwordHash: String)
Я новичок в Scala и играю новичка, поэтому мне очень жаль если это очень тривиальный вопрос. Но:
Что я делаю неправильно, так как получаю эту ошибку?
Это правильный способ добавить мою собственную проверку?
Последующий вопрос: я перенаправляю, если все идет хорошо, но как мне перенаправить на страницу, ссылающуюся на только что подтвержденную форму?
Приветствия
Nik
избавиться от vals в случае определения класса, реквизит класса класса по умолчанию неизменен – virtualeyes
Спасибо за комментарий, сейчас я удалил vals, но ничего не меняет, правильно? Я все равно получаю ту же ошибку компиляции – niklassaers