당신이 or
옵션이 없습니다 삼항를 사용하여, 당신은 단지 ?
및 :
때문에주의 사용할 수 있습니다
%td= campaign.status == "Approved" ? '<span class="glyphicon glyphicon-ok text-success"></span>'.html_safe : campaign.status
나는이 작업을하지만 유감스럽게도하지 않을 가정 3 중 연산을 중첩하면 완전히 혼란스러운 코드가 발생할 수 있으며이를 수행하는 데 어떤 이점도 보이지 않습니다.
나는 명확성을 위해 라인의 코드를 깰 수있을
try it here
대신 else
의미는 :
를 사용한다 ||
을 사용
는 :
:
%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
: '<span class="SOME-ICON-TO-SHOW-UNEXPECTED-STATUS"></span>'.html_safe
이 코드는 다음과 동일
if campaign.status == "Approved"
'<span class="glyphicon glyphicon-ok text-success"></span>'.html_safe
elsif campaign.status == "Rejected"
'<span class="glyphicon glyphicon-remove text-success"></span>'.html_safe
else
'<span class="SOME-ICON-TO-SHOW-UNEXPECTED-STATUS"></span>'.html_safe
end
그 목적을 위해보기 도우미를 사용하면 코드 클리너를 만들 것을 제안합니다.
%td=campaign_status(compaign.status)
':| '를 – Gerep
으로 대체하십시오. @Gerep는 구문 오류를 피하기 위해': html text' 절을 추가합니다. –
@Gerep 죄송합니다. 그러나 이것을 추가 할 곳을 분명히 할 수 있습니까? 명확하게하기 위해 상태가 Approved 인 경우 글리프콘을, 상태가 Rejected 인 경우 다른 글리프 콘을 원합니다. – EamonnMcElroy