2012-12-11 98 views
0

我無法弄清楚如何在任何模板加載之前運行函數。 例如: 我有一個名爲'authenticate'的函數返回一個Maybe值。我想在任何模板加載之前運行它,然後有條件地重定向。 我相信PreRun和OnLoad鉤子應該這樣做,但我不知道如何使用它們。捕捉:正確使用PreRun鉤子

有人可以顯示這些鉤子的正確用法來實現上面的例子嗎?

謝謝

回答

1

PreRun鉤已經消失在海斯特0.10。如果您嘗試調用的內容涉及模板處理,那麼您可以將它作爲編譯的拼接或加載時間拼接來完成。如果涉及Web服務器處理,則在呈現模板之前在Handler或Snap monad中執行此操作。

+0

謝謝,mightybyte。我想,我必須在很多Rails中有一個「before_filter」,它允許你在任何處理程序執行之前運行一個函數......無論如何,我想要的是,例如,在任何之前運行一個函數「授權」處理程序被執行。所以這個函數會檢查「用戶」會話密鑰,如果這個密鑰存在,那麼處理器執行,請求的頁面被加載。如果這樣的密鑰不存在,則用戶被轉發到登錄頁面並啓動登錄過程。我可以創建這樣一個功能,並將其粘貼到每個處理程序中,但我認爲我可以在preLoad鉤子中這樣做... –

+0

是的,這聽起來像是應該在路線級別上完成的事情。像'授權>>路由myRoutes'。 – mightybyte