Haskell 在Yesod中添加自定义数据类型
我正在使用搭建的yesod模板,希望为货币值添加一个新类型。理想情况下,这应该在一个名为Money.hs的文件中完成,例如。但这将形成循环进口:Haskell 在Yesod中添加自定义数据类型,haskell,yesod,organization,Haskell,Yesod,Organization,我正在使用搭建的yesod模板,希望为货币值添加一个新类型。理想情况下,这应该在一个名为Money.hs的文件中完成,例如。但这将形成循环进口: 基金会导入模型 新的货币类型将在模型中用于存储货币 价值观因此,模型将不得不输入资金 货币必须为“代码”引入基础:货币场::场 Handler Money函数 TL DR:有没有一种“正确”的方法可以将新类型添加到搭建好的YesSOD应用程序中,包括sql db类型、shakespeare字段小部件和ToHtml实例?关于第三个要点:为什么需要引用
- 基金会导入模型
- 新的货币类型将在模型中用于存储货币 价值观因此,模型将不得不输入资金 货币必须为“代码”引入基础:货币场::场 Handler Money函数
TL DR:有没有一种“正确”的方法可以将新类型添加到搭建好的YesSOD应用程序中,包括sql db类型、shakespeare字段小部件和
ToHtml
实例?关于第三个要点:为什么需要引用处理程序?您可以采用与中内置字段相同的方式构造字段代码,例如:
因此:我认为Money.hs
(甚至Data/Money.hs
)最有意义。这很有效,谢谢。另一个快速问题是,如何将类型封送到数据库值?我有一个PersistField
实例,但PersistFieldSql
似乎是隐藏的,我想两者都需要。该类是从Database.Persist.Sql中公开的。见:
textField :: Monad m => RenderMessage (HandlerSite m) FormMessage => Field m Text