如何在凤凰城上像其他语言一样早日归来

时间:2018-02-10 07:39:48

标签: 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") #(2)
end

它似乎立即重定向其他页面,但后来继续。 如何像其他语言一样停止回归?

1 个答案:

答案 0 :(得分:4)

Elpir没有任何办法提前退货。您必须使用unless / elseif / else

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

如果您不想要额外的缩进级别,您可以做的最好的事情是创建另一个函数并在else块中调用它。