haskell - create edit operation in a Yesod SubSite -
i'm having many problems create crud operation in subsite in yesod, have following routes
mkyesodsubdata "democrud" [parseroutes| /demonew demonewr post /demoedit/#demoid demoeditr post |] and following subdispach instance
instance (yesod master,rendermessage master formmessage, yesodpersist master, yesodpersistbackend master ~ sqlbackend) => yesodsubdispatch democrud (handlert master io) yesodsubdispatch = $(mkyesodsubdispatch resourcesdemocrud) but have error
couldn't match expected type ‘demoid -> handlert democrud (handlert parent1 io) a0’ actual type ‘handlert democrud (handlert master0 io) html’ i search in page example don't use id in routes
michael snoyman right, had error in postdemoeditr, following code correction
getdemoeditr :: yesodpersist master => yesodpersistbackend master ~ sqlbackend => (yesod master,rendermessage master formmessage) => demoid -> handlert democrud (handlert master io) html getdemoeditr demoid = demo <- lift $ rundb $ get404 demoid (widget, encoding) <- lift $ generateformpost $ renderbootstrap3 bootstrapbasicform $ demoform (just demo) lift $ defaultlayout $ [whamlet| <form method=post> ^{widget} <div> <input type=submit> |] postdemoeditr :: yesodpersist master => yesodpersistbackend master ~ sqlbackend => (yesod master,rendermessage master formmessage) => demoid -> handlert democrud (handlert master io) html postdemoeditr demoid = demo <- lift $ rundb $ get404 demoid ((result,widget), encoding) <- lift $ runformpost $ renderbootstrap3 bootstrapbasicform $ demoform (just demo) case result of formsuccess demoresult -> _ <- lift $ rundb $ replace demoid demoresult redirect demonewr _ -> lift $ defaultlayout $ [whamlet| <form method=post> ^{widget} <div> <input type=submit> |]
Comments
Post a Comment