现在当我用
<%= @inbox.automatic_reconciliation ? "<i class='fi-play-circle'></i>" : "<i class='fi-pause'></i>" %>我的视图显示页面上的实际代码,而不是图标。我尝试过使用一些方法,比如.to_html之类的,但是没有结果--我遗漏了什么?
发布于 2016-05-10 20:56:12
尝试使用html_safe方法。
<%= @inbox.automatic_reconciliation ? "<i class='fi-play-circle'></i>".html_safe : "<i class='fi-pause'></i>".html_safe %>文档
发布于 2016-05-10 21:15:51
如果您坚持这样做,请使用raw助手,它比html_safe更好
<%= raw @inbox.automatic_reconciliation ? "<i class='fi-play-circle'></i>" : "<i class='fi-pause'></i>" %>到目前为止,更好的解决方案是将这种逻辑从您的视图中删除。创建一个助手方法并简单地调用它:
<i class="<%= automatic_reconciliation_class %>"></i>发布于 2016-05-10 22:06:04
您可以使用三元运算符使其变得简单:
<i class="<%= @inbox.automatic_reconciliation ? "fi-play-circle" : "fi-pause" %>"></i>这直接嵌入了类名周围的条件,这就大大地清理了代码。只有类的名称可能会受到影响,因此HTML的其余部分将与将来可能导致维护问题的附带更改隔离开来。
https://stackoverflow.com/questions/37148731
复制相似问题