我试图了解正确的类型类约束用于想要将代码放入带有持久性的数据库中的函数的函数。为了使事情具体化,我有一个像:
这样的功能addToDbReturnJson obj = do
runDB $ insert obj
returnJson obj
我试图找出它的类型签名应该是什么。我很确定它应该像
addToDBReturnJson ::(ToJSON val,SomethingPersist val)=> val - >处理者价值
SomethingPersist
应该是什么?我很高兴能够指出解释Persistent中类型的文档,但我无法从Yesod书中找到它。
答案 0 :(得分:1)
这对我有用 -
addToDbReturnJson::(ToJSON val, PersistEntity val,
(PersistEntityBackend val ~ PersistMonadBackend (YesodDB App)))=>val->Handler Value
不是很直观,但在我看来,在最后一部分你必须指定输入值连接的数据库是处理程序使用的数据库(....好吧,这是有道理的我猜测)。