2016-08-03 21 views
0

Я хочу, чтобы иметь возможность передать значение объекта в заголовок элемента span, однако, когда я использую приведенный ниже код при наведении # {campaign.status}, отображается, а не Aprroved или Rejected as это мое намерение.Оценить значение объекта rails в заголовке span

%td.status-data= campaign.status == "Approved" ? '<span title="#{campaign.status}" class="glyphicon glyphicon-ok green center"></span>'.html_safe : campaign.status == "Rejected" ? '<span title="#{campaign.status}" class="glyphicon glyphicon-remove red center"></span>'.html_safe : campaign.status 
+0

Я думаю, что если вы сделаете ваш код можно прочитать, удалив эти тройные операторы в представлении и используйте if-else, тогда вы сами найдете ответ. ;) – uday

+0

У меня был противоречивый отчет. Некоторые люди предлагают тройных операторов, поскольку они уменьшают размер кода, делая общий документ более удобочитаемым, в то время как другие заняли вашу позицию. Удалив троичный оператор, как он влияет на то, что содержится в элементе span? – EamonnMcElroy

ответ

0

Кажется, вы используете haml для представлений, так оно должно быть, как показано ниже.

%td.status-data 
    - if campaign.status == "Approved" 
    %span.glyphicon.glyphicon-ok.green.center{title: "#{campaign.status}"} 
    - else 
    %span.glyphicon.glyphicon-remove.red.center{title: "#{campaign.status}"} 

Примечание: убедитесь, что ваши отступы 2 места для haml вида

ИЛИ вы должны использовать в простом html.erb, это будет, как показано ниже

<td class="status-data"> 
    <% if campaign.status == "Approved"%> 
    <span title="#{campaign.status}" class="glyphicon glyphicon-ok green center"></span> 
    <%else%> 
    <span title="#{campaign.status}" class="glyphicon glyphicon-remove red center"></span> 
    <%end%> 
</td> 
+0

Почему мой код не работает? Это из-за моего использования тройных операторов? – EamonnMcElroy

+0

У вас есть ошибка синтаксиса в использовании 'тройного оператора' – hgsongra

+0

обычно тернарный выглядит как' условие? true: false', но сделали 'условие? true: false: something else', поэтому после того, как часть 'something else' окажется недопустимой для trernary – hgsongra

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