如何使用 Yesod 的 Persistent 创建带有子数组的 MongoDB 文档?
我正在尝试创建一个持久类型,其建模类似于:
MyModel
something Text
somethingElse [Int]
我收到一个错误:
非法类型构造函数或类名:“[Int]” 拼接TH声明时: 数据我的模型 = MyModel {myModelSomething :: 文本,myModelSomethingElse :: [整数]} 推导(显示、读取、等式)
如有任何帮助,我们将不胜感激。
I am attempting to create a Persistent type that is modeled something like:
MyModel
something Text
somethingElse [Int]
and I get an error:
Illegal type constructor or class name: `[Int]'
When splicing a TH declaration:
data MyModel
= MyModel {myModelSomething :: Text, myModelSomethingElse ::
[Int]}
deriving (Show, Read, Eq)
Any help is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这只是持久语法的限制。要解决这个问题,请在 Haskell 代码中定义一个类型同义词(在 mkPersist 调用之前),例如:
然后在声明中将
[Int]
替换为Ints
,它应该可以工作。This is just a limitation of the Persistent syntax. To get around it, define a type synonym in your Haskell code (before the mkPersist call) like:
Then replace
[Int]
withInts
in your declaration, it should work.