我有一个简单的应用程序,在构建过程中,我遇到了一个复杂的错误,我无法确定原因。 (完全披露:这是我的第一个scala / play项目)
错误如下:
方法适用的参数太多:()play.api.templates.Html in object dailyChart
视图中有一个论点,我可以推测一个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>
答案 0 :(得分:1)
我能看到的唯一问题是:
<ul>
@reading.map { reading =>
<li>
它应该编译得很好,你将其改为@readings.map
。如果没有,请退出play
并删除您的target
目录,然后重试。