1
まず最初に私はHaskellのnoobだから何か明白なことがあれば私は間違って申し訳ありません。Yesod - おそらくEntityId to Entity Entity
getObject1R :: Object1Id -> Handler Html
:私のconfig /モデルが、私はタイプのハンドラを持っている場合、私はObject2には、オブジェクト1に関連する取得するにはどうすればよい
をファイルに
Object1
stuff Text
other Object2Id Maybe
Object2
otherStuff Text
:
は、私のようなものを持っていると言います
私が正しく理解していれば、runDB $ get
と中身にあるとからに電話して、タイプを試したことがありますうまく整列していません。
おかげ
EDITここ
は、私は近いですが、正しくない感じる1回の試行されます。
object1 <- runDB $ get object1Id
maybeObj2 <- case (object1Other object1) of
Just obj2Id -> Just $ runDB $ get obj2Id
Nothing -> Nothing
EDIT 2(それを考え出しました)
だから私はそれをコンパイルして動作させる方法を考え出しました!コメントと助けをありがとう。ここ
は(ハンドラで)私のコードです:
(object1, maybeObject2) <- runDB $ do
object1 <- get404 object1Id
maybeObject2 <- case (object1Other object1) of
Just object2Id -> get object2Id
Nothing -> return Nothing
return (object1,maybeObject2)
私はそれを行うには良い/高速化/簡単な方法があると確信しているが、これは働いていました。
もし 'obj1Id :: Object1Id'を持っていたら、' maybeObj2Id < - fmap object1Otherget obj1Id'は( 'runDB $ do'ブロックの中で)' Maybe Object2Id'を与えるべきです。 'fmap's - db-monadに入るものと' Maybe'のもの – Carsten
私はそれを試しませんでした...あなたはrunDBは必要ありませんか? – sbditto85
内部にyesods 'Handler'?はい! – Carsten