Yesodアプリケーションで永続的に試しています。私のモデルファイルには
Job
issuer MemberId
addDate UTCTime
lastDate UTCTime
title Text
description Text
deriving Show Read
そして私のハンドラー:
getProfileR :: Handler RepHtml
getProfileR = do
jobs <- runDB $ selectList [] [Desc JobAddDate]
defaultLayout $ do
setTitle "title"
$(widgetFile "profile")
profile.hamletで、オブジェクトをループします
$forall Job issuer addDate lastDate title description <- jobs
<p>#{issuer}
ただし、次のエラーが発生します
Handler/Profile.hs:36:18:
Couldn't match type `Entity' with `JobGeneric'
In the return type of a call of `selectList'
In the second argument of `($)', namely
`selectList [] [Desc JobAddDate]'
In a stmt of a 'do' block:
jobs <- runDB $ selectList [] [Desc JobAddDate]
Handler/Profile.hs:36:18:
Kind incompatibility when matching types:
t0 :: (* -> *) -> * -> *
JobGeneric Database.Persist.GenericSql.Raw.SqlPersist :: *
In the return type of a call of `selectList'
In the second argument of `($)', namely
`selectList [] [Desc JobAddDate]'
In a stmt of a 'do' block:
jobs <- runDB $ selectList [] [Desc JobAddDate]
Build failure, pausing...
ここで、36行目はrunDB行です。
Haskellに慣れていないので、何が悪いのか理解できません。私はYesodBookをフォローしています。残念ながら、彼らは足場サイトを避けているので、私は彼らのコードを完全に模倣することはできません。