首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails速记if/ html输出html

Rails速记if/ html输出html
EN

Stack Overflow用户
提问于 2016-05-10 20:50:41
回答 3查看 826关注 0票数 1

现在当我用

代码语言:javascript
复制
<%= @inbox.automatic_reconciliation ? "<i class='fi-play-circle'></i>" : "<i class='fi-pause'></i>" %>

我的视图显示页面上的实际代码,而不是图标。我尝试过使用一些方法,比如.to_html之类的,但是没有结果--我遗漏了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-10 20:56:12

尝试使用html_safe方法。

代码语言:javascript
复制
<%= @inbox.automatic_reconciliation ? "<i class='fi-play-circle'></i>".html_safe : "<i class='fi-pause'></i>".html_safe %>

文档

票数 0
EN

Stack Overflow用户

发布于 2016-05-10 21:15:51

如果您坚持这样做,请使用raw助手,它比html_safe更好

代码语言:javascript
复制
<%= raw @inbox.automatic_reconciliation ? "<i class='fi-play-circle'></i>" : "<i class='fi-pause'></i>" %>

到目前为止,更好的解决方案是将这种逻辑从您的视图中删除。创建一个助手方法并简单地调用它:

代码语言:javascript
复制
<i class="<%= automatic_reconciliation_class %>"></i>
票数 0
EN

Stack Overflow用户

发布于 2016-05-10 22:06:04

您可以使用三元运算符使其变得简单:

代码语言:javascript
复制
<i class="<%= @inbox.automatic_reconciliation ? "fi-play-circle" : "fi-pause" %>"></i>

这直接嵌入了类名周围的条件,这就大大地清理了代码。只有类的名称可能会受到影响,因此HTML的其余部分将与将来可能导致维护问题的附带更改隔离开来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37148731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档