1
对于我的网站,我想附加其他信息给Yesod的路线。例如。我想要特殊的导航路径(前一页,下一页,父页等)或自动创建一个概述页面,用于(分层)面包屑等。将附加信息附加到Yesod路线
基本上,我希望能够将我选择的记录附加到路线上。在这个例子中该记录可能看起来像:
data AdditionalRouteInfo = ARI { nextPage :: Maybe (Route App)
, prevPage :: Maybe (Route App)
, parentPage :: Maybe (Route App)
, seeAlso :: [Route App]
, description :: String
}
耶索德的路由属性只能是字符串,所以这是不够的。我的第一个冲动就是使用Data.Map (Route App) AdditionalRouteInfo
,但后来我发现,Route App
不是Ord
:-(
那么,什么是推荐的方式来实现这一目标?我能想到的唯一的办法就是写一个函数myRouteInfo :: Route App -> AdditionalRouteInfo
和模式我觉得这种困境很难,但是这种感觉很笨拙,有没有其他办法呢?
谢谢,我实现它的建议虽然我宁愿''路线应用程序''是一个' 'Ord'' :-) – Arno 2015-04-05 07:11:33
您可以随时使用StandaloneDeriving自行获取该实例。 – 2015-04-05 11:01:52