2016-08-02 6 views
0

キャンペーンが承認されたか拒否されたかによってティックまたはXを表示できます。現在、私は一度に1つの作業を行うことができますが、どのようにしてこれを結合するか、またはステートメントを追加するにはどうすればよいですか?私が試みたすべての試みは失敗で終わります。以下のコードのために、またはステートメントを作成するには

%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申し訳ありませんが、これを追加する場所を明確にできますか?私は状態が承認されている場合はグリフコン、ステータスが拒否されている場合は別のグリフコンが必要です。 – EamonnMcElroy

答えて

1

あなたがorオプションを持っていない三元を使用して、あなただけ?:

があるため注意してください使用することができます。

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

私は、これは動作しますが、残念ながらないだろうと想定しました入れ子になっている三項演算は、混乱を招くようなコードになる可能性があります。そのようなことには何の利点もありません。

代わりの||を使用して、あなたが、elseを意味し、try it here

:を使用する必要があります私は明確にするための行のコードを破るよ:

%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)

関連する問題