2016-08-03 5 views
-1

Ich versuche, den Wert eines Elements (Status) zu überprüfen und durchzuführen und wenn elsif Anweisung darauf. Wenn der Status genehmigt ist, möchte ich HTML hinzufügen und wenn es abgelehnt wird, möchte ich anderen HTML hinzufügen. Ich hatte versucht:Ternäre Syntax für if elsif in Schienen anzeigen

%td= campaign.status == "Approved" ? '<span class="glyphicon glyphicon-ok text-success"></span>'.html_safe || campaign.status == "Rejected" ? '<span class="glyphicon glyphicon-remove text-success"></span>'.html_safe 

Aber es versagt. Funktioniert mit der folgenden if-Anweisung wie folgt:

%td= campaign.status == "Approved" ? '<span class="glyphicon glyphicon-ok text-success"></span>'.html_safe : campaign.status 

Jede Hilfe wird geschätzt.

+0

„Aber scheitert "? Was bedeutet das? Syntax-Fehler? etwas anderes – siegy22

Antwort

1
haben

Die allgemeine Syntax für rub ternären Operator:

test-expression ? if-true-expression : if-false-expression  

In Ihrem Beispiel, versuchen Sie dies:

%td= campaign.status == "Approved" ? '<span class="glyphicon glyphicon-ok text-success"></span>'.html_safe : campaign.status || campaign.status == "Rejected" ? '<span class="glyphicon glyphicon-remove text-success"></span>'.html_safe : campaign.status 
1

Ternary Operator Syntax ist

e1? e2: e3

Sie können nicht nicht den : e3 Teil