我正在尝试与 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 id和Logger.info conn.assigns.current_user都返回相同的东西,但if块从未被输入。
我究竟做错了什么?
我猜你的conn.assigns.current_user是一个数字,id也是一个字符串。IO.inspect(is_binary(conn.assigns.current_user))