2017-10-06 3 views
0

Angenommen ichUmleiten in Yesod auf Routen mit Argumenten

/argument/#Int ArgumentR GET POST 

und die entsprechenden Handler

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

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

, wo nach ein Formular ausgeführt wird, ich möchte den get von der Post umleiten Handler (für das gleiche x). Wie kann ich ArgumentR in eine ausgenommene Route umwandeln, d. H. Das Argument x auf ArgumentR anwenden?

+0

Mögliches Duplikat [Yesod Umleitung auf Seite zu verankern] (https://stackoverflow.com/questions/20886254/yesod-redirect-to-anchor-on-page) – arrowd

+0

Ich denke nicht, dass dies die Frage beantwortet. Ich sah, dass die neue Version von 'Jessod' eine'. #. 'Funktion dafür liefert, aber' ArgumentR. #. x 'rendert zu '/ argument # x' nicht'/argument/x' (und gibt auch keine Überprüfung ein). – Montecristo

+1

Ah, das Problem ist mit Argument. Läuft 'ArgumentRx' nicht um, dann? – arrowd

Antwort

0

Routen wie ArgumentR aufgeführt in routes Datei sind einfache Datenkonstruktoren. Die Anzahl der Argumente, die sie nehmen, entspricht der Anzahl der # Teile in ihrer Deklaration. Also, in Ihrem Fall müssen Sie

redirect (ArgumentR x)