Phoenix 1.3 闪光灯不显示
Phoenix 1.3 flash not showing up
我的 put_flash(conn)
和 get_flash(conn)
方法运行异常;当我使用重定向时一切正常,但是当我尝试在后面的控制器中添加 flash_msg
时没有任何显示。
看起来消息存储在 :phoenix_flash
而不是 :plug_session
;知道那里出了什么问题吗?
def index(conn, _params) do
conn
|> put_flash(:info, "Welcome : info")
|> put_flash(:error, "Welcome : error")
render conn, "index.html"
end
private: %{EverlearnWeb.Router => {[], %{}},
:phoenix_action => :index,
:phoenix_controller => EverlearnWeb.PageController,
:phoenix_endpoint => EverlearnWeb.Endpoint,
:phoenix_flash => %{"error" => "Welcome : error", "info" => "Welcome : info"},
:phoenix_layout => {EverlearnWeb.LayoutView, :app},
:phoenix_pipelines => [:browser], :phoenix_router => EverlearnWeb.Router,
:phoenix_view => EverlearnWeb.PageView,
:plug_session => %{"_csrf_token" => "xxx",
"phoenix_flash" => %{"info" => "Welcome back Thibaut, your are signed in !"},
"user_id" => 1}, :plug_session_fetch => :done}
您需要将您的 conn
通过管道传输到 render
函数中:
conn
|> put_flash(:info, "Welcome : info")
|> put_flash(:error, "Welcome : error")
|> render("index.html")
在您的方法中,您将 flash 消息添加到 conn
,但在 render
中,您使用的是已传递给您的操作的未更新消息。
如果您希望将数据正确传递给 render
,其他方法是分配给 conn
:
conn =
conn
|> put_flash(:info, "Welcome : info")
|> put_flash(:error, "Welcome : error")
render conn, "index.html"
我的 put_flash(conn)
和 get_flash(conn)
方法运行异常;当我使用重定向时一切正常,但是当我尝试在后面的控制器中添加 flash_msg
时没有任何显示。
看起来消息存储在 :phoenix_flash
而不是 :plug_session
;知道那里出了什么问题吗?
def index(conn, _params) do
conn
|> put_flash(:info, "Welcome : info")
|> put_flash(:error, "Welcome : error")
render conn, "index.html"
end
private: %{EverlearnWeb.Router => {[], %{}},
:phoenix_action => :index,
:phoenix_controller => EverlearnWeb.PageController,
:phoenix_endpoint => EverlearnWeb.Endpoint,
:phoenix_flash => %{"error" => "Welcome : error", "info" => "Welcome : info"},
:phoenix_layout => {EverlearnWeb.LayoutView, :app},
:phoenix_pipelines => [:browser], :phoenix_router => EverlearnWeb.Router,
:phoenix_view => EverlearnWeb.PageView,
:plug_session => %{"_csrf_token" => "xxx",
"phoenix_flash" => %{"info" => "Welcome back Thibaut, your are signed in !"},
"user_id" => 1}, :plug_session_fetch => :done}
您需要将您的 conn
通过管道传输到 render
函数中:
conn
|> put_flash(:info, "Welcome : info")
|> put_flash(:error, "Welcome : error")
|> render("index.html")
在您的方法中,您将 flash 消息添加到 conn
,但在 render
中,您使用的是已传递给您的操作的未更新消息。
如果您希望将数据正确传递给 render
,其他方法是分配给 conn
:
conn =
conn
|> put_flash(:info, "Welcome : info")
|> put_flash(:error, "Welcome : error")
render conn, "index.html"