我有一个简单的应用程序正在构建过程中,并且遇到了一个我无法确定原因的复杂错误。(完全披露:这是我的第一个 scala/play 项目)
错误内容如下:
方法应用的参数太多:对象dailyChart中的()play.api.templates.Html
有一个观点认为我可以推测出 GlucoseReadings 列表。控制器正在传递模型提供的 GlucoseReadings 列表,所以我不知道为什么当参数和类型的数量匹配时参数太多。
我有一个简单的模型、控制器和视图,最终将显示一个简单的一天葡萄糖读数图表。
模型如下(在文件中GlucoseReadings.scala
):
package models
import play.api.db._
import play.api.Play.current
import anorm._
import anorm.SqlParser._
import org.joda.time._
import java.util.Date
case class GlucoseReading(
id: Int, mgdl: Int, recordTime: DateTime
)
object GlucoseReading {
val glucoseReading = {
get[Int]("id") ~
get[Int]("mgdL") ~
get[Date]("recordTime") map {
case id~mgdL~recordTime => GlucoseReading(id, mgdL, new DateTime(recordTime))
}
}
def dailyReadings(date: DateTime): List[GlucoseReading] = {
DB.withConnection { implicit connection =>
SQL("""
SELECT
id,
recordTime,
mgDl
FROM GlucoseReading
ORDER BY recordDate DESC
""").as(glucoseReading *)
}
}
}
控制器(在文件中GlucoseReadingsController.scala
):
package controllers
import play.api.mvc._
import play.api.data._
import play.api.data.Forms._
import org.joda.time._
import models.GlucoseReading
object GlucoseReadingsController extends Controller {
def daily(year: Int, month: Int, day: Int) = Action {
val date = new DateTime(year, month, day,0,0)
val readings = GlucoseReading.dailyReadings(date)
Ok(views.html.dailyChart(readings))
}
}
和视图(在文件中dailyChart.scala.html
):
@(readings: List[GlucoseReading])
@import helper._
@main("Day With Read") {
<ul>
@reading.map { reading =>
<li>
I'm a glucose reading
</li>
}
</ul>
}
根据评论,main
模板如下
@(title: String)(content: Html)
<!DOCTYPE html>
<html>
<head>
<title>@title</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
</head>
<body>
@content
<script src="http://code.jquery.com/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>