2012-06-13 5 views
0

mongodb 레코드 기반 모델을 구현했습니다. 데이터 (이벤트 레코드)를 DB에 저장하도록 폼을 코딩하려고합니다.mongodb 리프트 클래스 스 니펫이 추상적이어야 함

class eventSnippet extends StatefulSnippet with PaginatorSnippet[event] { 

    var dispatch: DispatchIt = { 
    case "editForm" => editForm _ 
    } 

    var editingevent = event.createRecord 


    def editForm(xhtml: NodeSeq): NodeSeq = { 
     ("#editName" #> editingevent.title.toForm & 
     "#editDescription" #> editingevent.description.toForm & 
     "#editDT" #> editingevent.date_time.toForm & 
     "#editCat" #> editingevent.category.toForm & 
     "#editPrivacy" #> editingevent.privacy.toForm & 
      "type=submit" #> SHtml.submit(?("Save"),() => save)).apply(xhtml) 
    } 

    def save = { 
    editingevent.save 
    redirectToHome 
    }} 

오류는 다음과 같습니다 :

저장소에 객체의 조각입니다

class eventSnippet needs to be abstract, since: 
[error] method page in trait Paginator of type => Seq[code.model.event] is not defined 
[error] method count in trait Paginator of type => Long is not defined 

내가 추상적으로 클래스를 변경하는 동안, 그것은 컴파일하지만 브라우저에 오류가 :

Message: java.lang.InstantiationException 
sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:30) 
java.lang.reflect.Constructor.newInstance(Constructor.java:513) 

저는 0.7.5 및 스칼라 2.9.1을 사용하고 있습니다.

답변

1

리프트는 스 니펫의 인스턴스를 만들어야 추상화 될 수 없습니다.

귀하의 발췌문에 페이지 매김이 필요하지 않습니다. with PaginatorSnippet[event]을 제거하고 클래스를 추상화하지 않아야합니다.

페이지 매김이 필요한 경우 pagecount 메서드에 대한 구현을 제공해야합니다.

class eventSnippet extends StatefulSnippet with PaginatorSnippet[event] { 
    def page: Seq[event] = // return itemsPerPage events, starting at curPage*itemsPerPage 

    def count: Long = // return total count of events. 

    // ... 
} 
+0

데이브, PaginatorSnippet [이벤트] 및 추상을 제거했습니다. 이제 정상적으로 작동합니다. 고마워. – user1433641

관련 문제