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

taj*_*iro 3 elixir phoenix-framework

assign/3当涉及到重定向/ 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
Run Code Online (Sandbox Code Playgroud)

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

Dog*_*ert 8

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

conn
  |> put_flash(:info, "Updated successfully.")
  |> redirect(to: page_path(conn, :index, member_id, message: message))
Run Code Online (Sandbox Code Playgroud)