2016-08-02 4 views
0

캠페인이 승인 또는 거부되었는지 여부에 따라 틱 또는 X를 표시하려고합니다. 현재 나는 한 번에 하나씩 할 수는 있지만 이것을 결합하거나 진술을 어떻게 추가합니까? 내가 한 모든 시도는 실패로 끝난다.아래 코드에 대한 또는 문을 작성하는 방법

%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 
+0

':| '를 – Gerep

+1

으로 대체하십시오. @Gerep는 구문 오류를 피하기 위해': html text' 절을 추가합니다. –

+0

@Gerep 죄송합니다. 그러나 이것을 추가 할 곳을 분명히 할 수 있습니까? 명확하게하기 위해 상태가 Approved 인 경우 글리프콘을, 상태가 Rejected 인 경우 다른 글리프 콘을 원합니다. – EamonnMcElroy

답변

1

당신이 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)

관련 문제