カスタム enum データ型の FromField インスタンスの定義に問題があります。
data Role = Staff | Student deriving (Eq, Ord, Show)
私のデータベースで表すRole
には、int 0 と 1 を使用します (ロールは後で追加できます) smallint
。
Review
私のdbテーブルの行を表す他のデータ型で使用されています:
data ReviewAssignment = ReviewAssignment
{ aID :: ID
, reviewID :: ID
, reviewerID :: ID
, revieweeID :: ID
, reviewerRole :: Role -- <-- right there
, reviewFinished :: Bool
, reviewPoints :: Float
} deriving (Show, Eq)
これは、ReviewAssignment の FromRow インスタンスです。
instance FromRow ReviewAssignment where
fromRow = ReviewAssignment <$> field <*> field <*> field <*> field <*> field <*> field <*> field
今、私は実装方法を理解していない次のものを見逃しています:
instance FromField Role where
fromField = undefined