Yesod持久代码的类型类约束

时间:2013-12-08 14:54:43

标签: haskell yesod persistent

我试图了解正确的类型类约束用于想要将代码放入带有持久性的数据库中的函数的函数。为了使事情具体化,我有一个像:

这样的功能
addToDbReturnJson obj = do
    runDB $ insert obj
    returnJson obj

我试图找出它的类型签名应该是什么。我很确定它应该像

addToDBReturnJson ::(ToJSON val,SomethingPersist val)=> val - >处理者价值

SomethingPersist应该是什么?我很高兴能够指出解释Persistent中类型的文档,但我无法从Yesod书中找到它。

1 个答案:

答案 0 :(得分:1)

这对我有用 -

addToDbReturnJson::(ToJSON val, PersistEntity val, 
     (PersistEntityBackend val ~ PersistMonadBackend (YesodDB App)))=>val->Handler Value

不是很直观,但在我看来,在最后一部分你必须指定输入值连接的数据库是处理程序使用的数据库(....好吧,这是有道理的我猜测)。