2017-10-06 3 views
0

Supposons que je voieRediriger dans Yessod à Routes avec arguments

/argument/#Int ArgumentR GET POST 

et les gestionnaires correspondants

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

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

où, après l'exécution d'un formulaire, je veux rediriger du poste à l'obtenir Gestionnaire (pour le même x). Comment puis-je transformer ArgumentR en une route exceptée, c'est-à-dire appliquer l'argument x à ArgumentR?

+0

double possible de [redirect Yessod pour ancrer la page] (https://stackoverflow.com/questions/20886254/yesod-redirect-to-anchor-on-page) – arrowd

+0

Je ne pense pas que cela réponde à la question. J'ai vu que la nouvelle version de 'Yesod' fournissait une fonction'. #. 'Pour cela, mais' ArgumentR. #. x' rend '/ argument # x' pas'/argument/x' (et ne vérifie pas non plus). – Montecristo

+1

Ah, le problème est avec l'argument. Ne pas rediriger le travail $ ArgumentR x', alors? – arrowd

Répondre

0

Les chemins comme ArgumentR répertoriés dans routes sont des constructeurs de données simples. Le nombre d'arguments qu'ils prennent est égal au nombre de #-pièces dans sa déclaration. Donc, dans votre cas, vous devez

redirect (ArgumentR x)