If 语句比较 haml 中的变量产生 true

If statements comparing variables in haml producing true

我的 haml 文件中有两个 if 语句

- if #{id} == 1
  %h1 #{id}

- if #{id} == 2
  %h1 #{id}

如果我有 id 1 或 2,两者都为真,所以我会打印在页面“1 1”或“2 2”上。我怎样才能对变量值进行比较。谢谢

编辑: 这就是我传递给我的观点:

    render "show" , :locals => {:id => params[:id]}

编辑 2:

这应该会产生两个 1,但当 id=1 时,只会从最后一个标签产生 1。所以我不知道可能是什么问题。还有其他想法吗?

- if id == 1
  %h1= id

- if id == 2
  %h1= id

%h1= id

答案:这有效。 (需要字符串的引号)

- if id == "1"
   %h1= id

- if id == "2"
   %h1= id

%h1= id

尝试:

- if id == "1"
  %h1= id

- if id == "2"
  %h1= id

假设你想要:

<% if id == "1" %>
  <h1><%= id %></h1>
<% end %>

<% if id == "2" %>
  <h1><%= id %></h1>
<% end %>

如果这对您不起作用,则问题出在其他地方。