在Phoenix中使用重定向时如何发送参数

时间:2018-02-11 15:53:03

标签: elixir phoenix-framework

当涉及assign/3时,我应该使用redirect/2来发送类似[1]的消息参数。然后我想在索引操作中获取message参数。

def index(conn, %{"member_id" => member_id}) do
  # Show index page.
  message = conn.params[:message]
end

def create(conn, _params) do
  case Casher.create_members(members) do
    {:ok, members} ->
    conn
      |> put_flash(:info, "Updated successfully.")
      |> assign(:message, message) #[1]
      |> redirect(to: page_path(conn, :index, member_id))
end

然而,似乎没有在索引动作中获得参数。 我应该如何得到一个额外的参数如消息。 我不喜欢改变索引动作的参数。

1 个答案:

答案 0 :(得分:7)

assign在当前请求的连接结构中存储一个值。如果要传递应该在重定向URL的参数中读取的值,可以将其传递给路径生成器函数,如下所示:

conn
  |> put_flash(:info, "Updated successfully.")
  |> redirect(to: page_path(conn, :index, member_id, message: message))