2017-03-25 2 views
0

Ich merke, dass meine Cookies nicht gesetzt sind, wenn ich put_resp_cookie() vor einer Weiterleitung durchführen.Setzen von Cookies vor einer Weiterleitung in Phoenix Framework Elixir

conn 
|> put_resp_cookie("shop", shop) 

if (some_condition) do: 
    redirect conn, to: "/foo/bar" 

In meiner Controller-Funktion für/foo/bar, wird das Cookie nicht gesetzt. Gibt es eine Möglichkeit, den Cookie zu setzen?

+2

zu tun Haben Sie neu zuweisen vergessen zu 'conn' nach der Cookie-Einstellung? 'conn = conn |> put_resp_cookie (..)'? – Dogbert

+0

Ich dachte, die Syntax, die ich verwendete, würde das tun, wie in diesem Blog-Post: https://www.amberbit.com/elixir-cocktails/phoenix/reading-and-writing-cookies-in-phoenix-with-plug/ – sheldonkreger

+2

Nein, eine Pipe wird nicht neu zugewiesen. Der Grund dafür, dass der Code funktioniert, ist, dass er das neue "conn" direkt zurückgibt, während Sie nach der Pipe ein "if" tun. – Dogbert

Antwort

0

Es scheint, dass Sie nicht neu zugewiesen haben. Sie haben einfach conn in put_resp_cookie/2 geleitet, aber den Wert nicht erfasst. Sie soll wohl so etwas wie dies stattdessen

conn = conn |> put_resp_cookie("shop", shop) 
Verwandte Themen