2015-11-03 27 views
1

我正在使用腳手架yesod模板,並且想要爲貨幣值添加新類型。理想情況下,這應該在一個名爲Money.hs的文件中完成。但是這將形成循環進口:在Yesod中添加自定義數據類型

  • 基金會進口型號。

  • 將在模型中使用新的Money類型來存儲貨幣 值。因此模型將不得不進口金錢

  • 資金將不得不爲moneyField :: Field Handler Money功能

TL DR導入基礎:是否有一個「正確」的方式來新類型添加到腳手架耶索德應用程序包括SQL db類型,莎士比亞的字段構件和ToHtml實例?

回答

1

對於你的第三個項目符號:你爲什麼需要參考Handler?你可以組織你的域代碼相同的方式,內置的字段Yesod.Form.Fields,例如:

textField :: Monad m => RenderMessage (HandlerSite m) FormMessage => Field m Text 

憑藉的是:我想說的是一個Money.hs(甚至Data/Money.hs)是最有意義的。

+0

工作,謝謝。另一個快速問題,我怎麼能編組我的類型到數據庫值?我有一個'PersistField'實例,但是'PersistFieldSql'似乎隱藏了,我需要兩個(我認爲)。 – user2936306

+0

該類從Database.Persist.Sql公開。請參閱:http://www.stackage.org/lts-3.12/hoogle?q=PersistFieldSql&exact=on –

+0

再次感謝,偉大的框架! – user2936306

相關問題