ユーザーがログインしていることを確認する認可スキームを設定しようとしています。2.ユーザーが特定のオブジェクトにアクセスしています。このために私はまずmaybeAuthId
を呼び出し、現在のオブジェクトを取得しようとし、権限をリストしている別のテーブルに「結合」します。たぶん2つのレベルの多分ケースと1つのレベルの空リストケースがあります。私はMaybeTを使用することを考えましたが、それを動作させるにはあまりにも疲れました。あるいは、実際にはモナドトランスではありません.-ハンドラートランスはMaybeTで使用できません。深いメイズを扱う良い方法はありますか?ディープスタックとyesod
編集:
私は少し不明でした。それはあなたが「深いmaybesを扱う」ことで何を意味するかを正確に明確ではないですが、一度にネストの1つのレベルを削除するには(Control.Monad
から)単項join
を使用することができます
case foo of
Nothing -> something
Just foo' -> do
bar <- somethingelse
case bar of
Nothing -> ...
Just bar' -> ...
ありがとうございました。私は変圧器を使用してからしばらくして、MaybeTでそれらを包む必要があるのを忘れてしまった。 – Masse