我在Yesod(0.10)建立一個調查網站,並在類型中迷路。 這是我正在嘗試做的簡化版本。試圖發送電子郵件在yesod使用hamlet
invitation url = do
render <- getUrlRender
return $ renderHtml [hamlet|
<p>Dear foo, please take our
<a [email protected]{ShowSurveyR url}>survey.
|] render
另一個函數將調用此函數,希望獲得可以從Network.Mail.Mime傳遞給simpleMail的內容。上述函數給出了錯誤類型:
Handler/Root.hs:404:13:
The function `renderHtml' is applied to two arguments,
but its type `Html -> LT.Text' has only one
這是令人困惑,因爲模板教程,似乎這樣做事。 但是如果我修改代碼,像這樣......
invitation url = do
return $ renderHtml [hamlet|
<p>Dear foo, please take our
<a [email protected]{ShowSurveyR url}>survey.
|]
我得到這種類型的錯誤。
Handler/Root.hs:403:24:
The lambda expression `\ _render[a4TO] -> ...' has one argument,
but its type `Html' has none
In the first argument of `renderHtml', namely
我認爲renderHtml是錯誤的函數使用,但我找不到什麼是正確的功能。有誰知道我錯過了什麼?我該如何將路由功能傳遞到我的哈姆雷特代碼?
是的,我試過了太,並得到了不同類型的錯誤。但問題似乎是我需要使用getUrlRenderParams。一旦我這樣做了,代碼就起作用了。謝謝你的幫助! – MattoxBeckman 2012-04-10 01:24:22
對,我知道。 ;)很高興你懂了! – chreekat 2012-04-10 17:08:05