2013-04-05 53 views
0

我有一個簡單的應用程序,在構建過程中,我遇到了一個複雜性錯誤,我無法確定原因。 (全面披露:這是我第斯卡拉/播放項目)Play2模板中的參數太多

錯誤讀取:

的方法太多的論點也適用:()play.api.templates.Html在對象dailyChart

有一個觀點認爲我可以推測葡萄糖讀物列表。控制器傳遞一個由模型提供的GlucoseReading列表,所以我迷失在爲什麼有太多當參數和類型的數目匹配時。

我有一個簡單的模型,控制器和視圖,最終將顯示一天的葡萄糖讀數的簡單圖表。

的模型是如下(以文件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 templa TE低於

@(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

錯誤指出模板文件中參數的數量錯誤。但是提供的代碼片段對我來說看起來不錯。你檢查了你的'main'模板的參數列表嗎?如果主模板不接受任何參數,則應該發生相同的錯誤。 – fynn 2013-04-07 09:31:50

+0

感謝接受內容部分的標題和html字符串的模板現在包含在上面的代碼片段中。 – kmoormann 2013-04-08 15:42:11

回答

1

我可以看到的是唯一的問題:

<ul> 
    @reading.map { reading => 
     <li> 

應該編譯就好了一個把它修改成@readings.map。如果沒有,請退出play並刪除您的target目錄,然後重試。

+0

感謝您的輸入。我將映射參數的名稱更改爲讀數,並按規定擦除了目標目錄,但都沒有成功。另外,我可以提供一個無參數視圖並將其命名爲views.html.dailyChart(),並且沒有複雜性錯誤。 – kmoormann 2013-04-07 01:12:12