2012-06-21 24 views
4

在Yesod中是否有可能在站點範圍內有變量?假設,我有主菜單,哪些條目從數據庫收集,並在每個頁面上呈現:我應該在每個處理程序中手動獲取條目嗎?Yesod佈局(django上下文處理器模擬)中的全局變量

我試圖在defaultLayout爲此在Foundation.hs在instance Yesod App聲明:

instance Yesod App where 
    ... 

    defaultLayout widget = do 
     ... 
     entries <- runDB $ selectList [RubricOnTop ==. True] [] 
     ... 

但這無法編譯:我有一個類型不匹配EntityRubricGeneric

解決方案

$forall rubric <- map entityVal rubrics 
     ... 
在默認佈局wrapper.hamlet

。尚未找到解決方案在defaultLayout功能中執行此操作。

回答

3

您顯示的代碼很好,但在使用entries時,請注意,類型爲Entity Rubric,而不是Rubric