Yesodにサイト全体の変数がある可能性はありますか?DBから収集され、すべてのページにレンダリングされるメインメニューがあるとします。各ハンドラーでエントリを手動でフェッチする必要がありますか?
私はFoundation.hsのinstance Yesod App
宣言でこれを実行しようとしましたdefaultLayout
:
instance Yesod App where
...
defaultLayout widget = do
...
entries <- runDB $ selectList [RubricOnTop ==. True] []
...
しかし、これはコンパイルに失敗します:私はとの型の不一致Entity
がありRubricGeneric
ます。
解決
$forall rubric <- map entityVal rubrics
...
default-layout-wrapper.hamletにあります。defaultLayout関数でこれを行うための解決策はまだ見つかりません。