あなたが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)
':|'を ':'に置き換えます。 – Gerep
@Gerepは、構文エラーを避けるために ':html text'節を追加します。 –
@Gerep申し訳ありませんが、これを追加する場所を明確にできますか?私は状態が承認されている場合はグリフコン、ステータスが拒否されている場合は別のグリフコンが必要です。 – EamonnMcElroy