我是Yesod Haskell新手,我非常喜歡它,但我必須在一個月後離開它,因爲我無法解決此問題: 我有版本yesod-core版本: 1.0.1.3 我跟着這個例子: More Client Side Yesod: todo sample 我可以創建自己的網頁,並通過JSON 與數據填充它後,我添加使用JSON 一個新的記錄,但我不能刪除或更改記錄,因爲我無法找到一種方法來恢復密鑰。 我不能使用這個系統導出數據如下解釋:如果我用這個系統Yesod修改和刪除JSON
Exception when trying to run compile-time code:
Data.Aeson.TH.withType: Unsupported type: TySynD Model.Elarticoli [] (AppT (ConT Model.ElarticoliGeneric) (ConT Database.MongoDB.Query.Action))
Code: deriveFromJSON (id) ''Elarticoli
:
Elarticoli
marca Text
descrizione Text
idum Int
prezzo Double
instance FromJSON (Key id Elarticoli) where
parseJSON = fmap Key . parseJSON
instance FromJSON Elarticoli where
parseJSON (Object v) = Elarticoli
<$> v .: "marca"
<*> v .: "descrizione"
<*> v .: "idum"
<*> v .: "prezzo"
parseJSON _ = fail "Invalid Elarticoli"
postAeldatidelR :: Handler()
postAeldatidelR = do
id <- parseJsonBody_
runDB (delete id)
sendResponseStatus status204()
我總是Parsing a JSON post和 Correct way to do a 「join」 in persist with yesod和aeson-0.6.0.2: Fast JSON parsing and encoding因爲我總是得到這個錯誤得到這個錯誤:
Handler/Aeldati.hs:72:12:
Ambiguous type variable `val0' in the constraint:
(PersistEntity val0) arising from a use of `delete'
Probable fix: add a type signature that fixes these type variable(s)
In the first argument of `runDB', namely `(delete id)'
In a stmt of a 'do' block: runDB (delete id)
In the expression:
do { id <- parseJsonBody_;
runDB (delete id);
sendResponseStatus status204() }
對於持久性我使用MongoDB。 我將不得不回到Java工作?謝謝你的幫助。