Elixir 中的字符串比较

Hri*_*ari 3 elixir

我正在尝试与 Elixir 中的字符串位进行比较 - 如果它们相等,则块会if被触发,或者else块应该被触发。

def show(conn, %{"id" => id}) do
    Logger.info id
    Logger.info "----------"
    Logger.info conn.assigns.current_user
    if conn.assigns.current_user == id do
        professional = Repo.get!(Professional, id)
        render(conn, "show.html", professional: professional)
    else
      conn
      |> put_flash(:error, "You must be logged in for that!")
      |> redirect(to: site_path(conn, :index))
      |> halt()
    end
Run Code Online (Sandbox Code Playgroud)

在上面,Logger.info idLogger.info conn.assigns.current_user都返回相同的东西,但if块从未被输入。

我究竟做错了什么?

gre*_*reg 5

我猜你的conn.assigns.current_user是一个数字,id也是一个字符串。IO.inspect(is_binary(conn.assigns.current_user))