现在我使用
<%= @inbox.automatic_reconciliation ? "<i class='fi-play-circle'></i>" : "<i class='fi-pause'></i>" %>
我的视图会在页面上显示实际代码而不是图标。我尝试过使用像.to_html这样的方法,但无济于事 - 我错过了什么?
答案 0 :(得分:0)
尝试使用html_safe
方法。
<%= @inbox.automatic_reconciliation ? "<i class='fi-play-circle'></i>".html_safe : "<i class='fi-pause'></i>".html_safe %>
答案 1 :(得分:0)
如果您坚持这样做,请使用raw
帮助程序,该帮助程序优先于html_safe
:
<%= raw @inbox.automatic_reconciliation ? "<i class='fi-play-circle'></i>" : "<i class='fi-pause'></i>" %>
到目前为止,更好的解决方案是从您的视图中删除此逻辑。创建一个辅助方法并简单地调用它:
<i class="<%= automatic_reconciliation_class %>"></i>
答案 2 :(得分:0)
您可以使用三元运算符使其变得简单:
<i class="<%= @inbox.automatic_reconciliation ? "fi-play-circle" : "fi-pause" %>"></i>
这会直接在类名周围嵌入条件,这会清理代码很多。只有类的名称可能会受到影响,因此HTML的其余部分将与偶然的更改隔离,这些更改可能会在将来导致维护问题。