2017-03-25 7 views
0

リダイレクトの前にput_resp_cookie()を実行すると、クッキーが設定されていないことに気づいています。フェニックスのフレームワークでリダイレクトする前にクッキーを設定するエリクシル

conn 
|> put_resp_cookie("shop", shop) 

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

/foo/barのコントローラ機能では、Cookieが設定されていません。クッキーを設定する方法はありますか?

+2

クッキーの設定後に 'conn'を再割り当てするのを忘れましたか? 'conn = conn |> put_resp_cookie(..)'? – Dogbert

+0

私は、このブログ記事のとおり、私が使った構文がこれを行うと思った:https://www.amberbit.com/elixir-cocktails/phoenix/reading-and-writing-cookies-in-phoenix-with-plug/ – sheldonkreger

+2

いいえ、パイプは再割り当てされません。コードが機能するのは、パイプの後に 'if'を実行している間に新しい' conn'を直接返すからです。 – Dogbert

答えて

0

connを再割り当てしていないようです。あなたは単にconnをput_resp_cookie/2にパイプしましたが、値を取得しませんでした。

conn = conn |> put_resp_cookie("shop", shop) 
関連する問題