Scalatra Squeryl 选择缺少参数类型的位置



我是Scalatra初学者,我有以下路线:

  get("/todos") {
    contentType = formats("json")
    val userid : Int = params.getOrElse("userid", halt(400)).toInt
    val limit : Int = params.getOrElse("limit", "0").toInt
    val offset : Int = params.getOrElse("offset", "0").toInt
    if(limit != 0 && offset != 0) 
        from(TodoDb.todos)(todo => where(todo => todo.userid == userid) select(todo)).toList
    else {
        from(TodoDb.todos)(todo => where(todo => todo.userid == userid) select(todo) orderBy(todo.modified)).page(offset, limit).toList
    }
  }

无法编译它,我收到以下错误消息:

[info] Compiling 1 Scala source to /home/coelho/www/p.zomg.hu/gfmwa-todo-app/target/scala-2.10/classes...
[error] /home/coelho/www/app/src/main/scala/hu/gfmwa/todoapp/TodoScalatraServlet.scala:25: missing parameter type
[error]         from(TodoDb.todos)(todo => where(todo => todo.userid == userid) select(todo)).toList
[error]                                          ^
[error] /home/coelho/www/app/src/main/scala/hu/gfmwa/todoapp/TodoScalatraServlet.scala:27: missing parameter type
[error]         from(TodoDb.todos)(todo => where(todo => todo.userid == userid) select(todo) orderBy(todo.modified)).page(offset, limit).toList
[error]                                          ^
[error] two errors found
[error] (compile:compile) Compilation failed

我从这里学习:http://squeryl.org/selects.html 和这里:http://squeryl.org/pagination.html

无法在这些页面上看到参数类型信息,我无法弄清楚,可能是什么问题。我做错了什么?

where不希望

内部有一个函数(todo=>),而只是一个布尔的东西。因此,要使您的代码正常工作,请编写类似 from(TodoDb.todos)(todo => where(todo.userid === userid) select .

顺便说一句,我建议在看到像(todo => where (todo =>这样的代码片段(双重"待办事项"定义)时立即保持谨慎。

相关内容

最新更新