如果在rails视图中使用elsif的三元语法

时间:2016-08-03 09:15:54

标签: ruby-on-rails ternary-operator

我正在尝试检查元素的值(状态)并执行以及是否有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

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

三元运算符语法

e1e2e3

您无法拥有: e3部分

答案 1 :(得分:1)

rub ternary运算符的一般语法:

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