首先,我是一个Haskell noob,所以如果有明显的事情,我会抱歉。
说我有类似的东西:
Object1
stuff Text
other Object2Id Maybe
Object2
otherStuff Text
在我的配置/模型文件中
如果我有一个类型为
的处理程序,如何获取与Object1关联的Object2getObject1R :: Object1Id -> Handler Html
如果我理解正确,我希望从Maybe Object2Id
转到Maybe Object
,并在中间调用runDB $ get
,并且我已经尝试了所有类型的“{1}}”。排队正确。
由于
修改的
这是我认为接近但不正确的一次尝试:
object1 <- runDB $ get object1Id
maybeObj2 <- case (object1Other object1) of
Just obj2Id -> Just $ runDB $ get obj2Id
Nothing -> Nothing
编辑2(计算出来)
所以我想出了如何让它编译和工作!感谢您的评论和帮助。
这是我的代码(在处理程序中):
(object1, maybeObject2) <- runDB $ do
object1 <- get404 object1Id
maybeObject2 <- case (object1Other object1) of
Just object2Id -> get object2Id
Nothing -> return Nothing
return (object1,maybeObject2)
我确信有更好/更快/更简单的方法,但这很有效。
答案 0 :(得分:1)
所以我想出了如何让它编译和工作!感谢您的评论和帮助。
这是我的代码(在处理程序中):
(object1, maybeObject2) <- runDB $ do
object1 <- get404 object1Id
maybeObject2 <- case (object1Other object1) of
Just object2Id -> get object2Id
Nothing -> return Nothing
return (object1,maybeObject2)
我确信有更好/更快/更简单的方法,但这很有效。