首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fay代码中的持久模型类型

Fay代码中的持久模型类型
EN

Stack Overflow用户
提问于 2013-03-29 17:34:43
回答 1查看 464关注 0票数 3

我正在使用Yesod脚手架网站(yesod 1.1.9.2),昨天我花了几个小时把我的头围绕在Fay和Yesod的基本用法上。我想我现在理解了使用Fay向页面添加部分AJAX功能的工作流程(我在这里会有点迂腐,因为其他人可能会发现这一步的有用):

  • 将数据构造函数Example a添加到SharedTypes.Command
  • 在表达式case readFromFay Command of ...中的Handler.Fay.onCommand中,添加一个与我的新数据构造函数匹配的大小写。
  • 在Example.hs中创建Fay文件“/fay”,该文件以fay/Home.hs为模板。在这里的某个地方,使用表达式call (Example "foo") $ myFayCallback
  • 为使用我正在生成的Javascript的页面定义一个路由和处理程序。在处理程序中,使用$(fayFile' (ConE 'ScriptR) "Example.hs")

我的问题:在当前的Yesod/Fay体系结构中,我应该如何与Fay代码共享我的持久性模型类型?

在Fay文件中使用import Model不起作用--当我试图加载使用这个Fay文件的页面时,我在浏览器中得到一个错误(我猜Fay的提醒我注意错误的标准方式),表明它找不到模块'Model‘,但是它只搜索了以下目录:

  • 投影仪/阴谋-dev//share/fay-0.14.2.0/src
  • projectroot/cabal-dev/share/fay-base-0.14.2.0/src
  • projectroot/阴谋-dev/share/fay-base-0.14.2.0
  • 投影仪/飞
  • 投影仪/飞-共享

我还尝试在SharedTypes.hs中导入和再导出模型,但这也产生了同样的错误。

有办法这样做吗?若否,原因为何?(我在Haskell和Yesod都是一个相对的菜鸟,所以为什么不呢?)问题会很有帮助。)

编辑:

我刚刚意识到,在这个问题的标题中提到持续性可能会产生误导。为了更清楚地了解我想要做的事情:我只希望能够使用Yesod为我的模型定义的相同的数据类型在我的Fay代码中表示数据。如果我在配置/模型中定义一个模型..。

代码语言:javascript
复制
Foo
    bar BarId
    textThatCanBeNull Text Maybe
    deriving Show

..。我希望能够定义一个AJAX‘命令’,它接收和/或返回一个Foo类型的值,并在Foo中处理Fay代码,而不必编写任何反序列化代码。我知道我无法直接从Fay代码中使用Persistent的任何查询功能;我只在标题中提到持久性,因为我将Model.hs和配置/模型中的所有内容都与持久性联系在一起。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-31 06:33:11

目前不支持这一点;持久性利用了Fay不支持的许多特性(例如,模板Haskell)。目前,有一个由Fay和Yesod共享的中间数据类型并将您的持久数据转换为/从该类型可能是有意义的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15708400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档