在 Yesod 中重定向到带有参数的路由

Redirecting in Yesod to Routes with Arguments

假设我有一条路线

/argument/#Int ArgumentR GET POST

和相应的处理程序

getArgumentR :: Int -> Handler Html
getArgumentR x = undefined

postArgument :: Int -> Handler Html
postArgument x = do
    ...
    redirect (??)

其中,在 运行 表单之后,我想从 post 重定向到获取处理程序(对于相同的 x)。如何将 ArgumentR 变成例外路线,即将参数 x 应用于 ArgumentR?

routes 文件中列出的 ArgumentR 等路由是简单的数据构造函数。他们采用的参数数量等于其声明中#-pieces 的数量。所以,在你的情况下你需要

redirect (ArgumentR x)