Elixir 如何像凤凰城的其他语言一样提前返回

Elixir 如何像凤凰城的其他语言一样提前返回,elixir,phoenix-framework,Elixir,Phoenix Framework,我想在有效检查后返回,然后转到其他第1页。 然而,它似乎在后面,然后呈现索引第2页 def index(conn, %{"id" => id}) do unless Model.is_valid!(id) do conn |> redirect(to: other_path(conn, :other)) #(1) end # More process are after this. render(conn, "index.html") #(

我想在有效检查后返回,然后转到其他第1页。 然而,它似乎在后面,然后呈现索引第2页

def index(conn, %{"id" => id}) do
  unless Model.is_valid!(id) do
      conn
        |> redirect(to: other_path(conn, :other)) #(1)
  end
  # More process are after this.
  render(conn, "index.html") #(2)
end
它似乎立即重定向到另一页,但随后继续。
我怎样才能像其他语言一样停止使用return呢?

Elixir没有任何提前返回的方法。您必须使用除非/else或如果/else:


如果不需要额外的缩进级别,最好创建另一个函数并在else块中调用它。

Elixir没有任何方法提前返回。您必须使用除非/else或如果/else:


如果不需要额外的缩进级别,最好创建另一个函数,并在else块中调用它。

对于粗略,除非else end可以工作。但我不希望代码被嵌套在除非else-end。当然,除非else-end可以工作。但我不希望代码被嵌套,除非它结束。
def index(conn, %{"id" => id}) do
  unless Model.is_valid!(id) do
    conn
    |> redirect(to: other_path(conn, :other)) #(1)
  else
    # More process are after this.
    render(conn, "index.html") #(2)
  end
end