2017-02-26 5 views
0
getHomeR :: Handler Html 
getHomeR = do 
    wordList <- runDB $ selectList [] [] :: HandlerT App IO [Entity Vocabulary] 
    defaultLayout 
     [whamlet| 
      <ul> 
       $forall Entity wordid wordItem <- wordList 
        <li> 
         <a [email protected]{HomeR}>#{date wordItem} 
     |] 

내가Yesod 햄릿 getHomeR는

Variable not in scope: date :: Vocabulary -> a0 

가 나는 모델에서 정의하는 동안이 오류가 참조 찾을 수 없습니다 나는 yesod 발판을 기반으로 개발하고 있어요 예 : yesod-postgres

답변

2

date 대신 vocabularyDate이어야합니다. yesod book에 영구 섹션에 따르면 ,

mkPersist sqlSettings [persistLowerCase| 
Person 
    name String 
    age Int 
    deriving Show 
|] 

의지는 당신이 볼 수 있듯이, 필드 이름은 데이터 이름을 붙

data Person = Person 
    { personName :: !String 
    , personAge :: !Int 
    } 
    deriving Show 
... 

과 같은 코드 (personName 대신 name)를 생성 . 이것은 하스켈에서 이름 충돌을 피하기위한 표준 사례이다.

+0

yesod 책의 어느 부분에서이 사실을 알 수 있습니까? – osager

+0

그것은 yesod 책에 있어요. 업데이트를 참조하십시오. – mb14