【发布时间】:2013-11-30 23:45:12
【问题描述】:
我一直致力于了解有关 Yesod 的所有信息,但我(有点)卡在路由系统上,它与子站点和跨路由链接有关。我想首先说明的是在整个路由定义和 Hamlet 链接中发现的“ResourceR”模式。
我注意到“类型”本身 (ResourceR) 从未在 Yesod 的 TH DSL 之外进行寻址或引用。这是否意味着它仅真正用作虚拟类型,仅用于在引用 Yesod 链接时利用 Haskell 的类型安全性?我还注意到getResourceR、postResourceR 等函数对于应用程序的工作来说是至关重要的,但它们的定义在样板应用程序代码中的使用位置并不明确。 Yesod 是否只是将对 @{ResourceR} 的调用减少到适当的函数?
我一直觉得我应该将 ResourceR 自己定义为一种数据类型,而实际上它是由 Yesod 在内部生成和减少的。
所以我的问题是:在 Hamlet 和 Route 代码中引用的“资源类型”是否会被 Yesod 的 DSL 自动生成和减少?
提前谢谢你!
【问题讨论】:
-
看看
http://www.yesodweb.com/book/basics,它清楚地描述了Resource数据类型。
标签: haskell yesod type-safety template-haskell hamlet