getHomeR :: Handler Html
getHomeR = do
wordList <- runDB $ selectList [] [] :: HandlerT App IO [Entity Vocabulary]
defaultLayout
[whamlet|
<ul>
$forall Entity wordid wordItem <- wordList
<li>
<a href=@{HomeR}>#{date wordItem}
|]我得到了这个错误
Variable not in scope: date :: Vocabulary -> a0虽然我已经在模型中定义了:
Vocabulary json
word Text
date UTCTime
deriving ShowPS:我正在基于yesod scaffold示例进行开发: yesod-postgres
发布于 2017-02-26 21:58:59
它应该是vocabularyDate而不只是date。根据yesod book上的持久化部分,
mkPersist sqlSettings [persistLowerCase|
Person
name String
age Int
deriving Show
|]将生成如下代码
data Person = Person
{ personName :: !String
, personAge :: !Int
}
deriving Show
...如您所见,字段名称以数据名称为前缀(personName而不是name)。这是Haskell中避免名称冲突的标准做法。
https://stackoverflow.com/questions/42468694
复制相似问题