2015-01-05 1 views
0

У меня есть два, если заявления в моем файле HamlЕсли заявления сравнения переменных в Haml производство верно

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

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

Если у меня есть идентификатор 1 или 2, и выйти как правду, так я получаю распечатываться на странице " 1 1 "или" 2 2 ". Как я могу выполнить сравнение с переменным значением. Спасибо

EDIT: Это то, что я передаю на мой взгляд:

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

EDIT 2:

Это должно производить два 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 
+2

вам не нужна интерполяция при сравнении. '- if id == 1' –

+0

Я ничего не получаю, если я это делаю – applecrusher

+1

, если вы передаете тип в locals, проверьте' type' like '-if type == 1' –

ответ

2

Try:

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

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

Предполагая, что вы хотите:

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

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

Если это не работает для вас, проблема в другом месте.

Смежные вопросы