rails 视图中 if elsif 的三元语法

Ternary syntax for if elsif in rails view

我正在尝试检查元素(状态)的值并对其执行 if elsif 语句。如果状态被批准,我想添加 html,如果被拒绝,我想添加不同的 html。我曾尝试过:

%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 

但是它失败了。使用基本的 if 语句可以正常工作,如下所示:

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

感谢任何帮助。

三元运算符语法为

e1e2 : e3

你不能没有 : e3 部分

rub 三元运算符的一般语法:

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

在你的例子中,试试这个:

%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