在控制器中,我可以传递字符串进行查看。
如何传递带下标的字符串?
在html中很容易,只需使用<sub>
标记。
我尝试了3次传递这个下标来查看但失败了。
<sub>
,它将显示I<sub>tag</sub>
而不是 tag 。string1="string"+<sub>+"tag"+</sub>
,并通过
string1
,控制器会给出错误!如何将下标字符串传递给视图?我必须循环不同的条件,所以我不能使用<sub>
标签,我需要从控制器传递。
修改
我在控制器中尝试了这段代码
@valuedisplay=@value.to_s + " m/s<sup>2</sup>".html_safe
作为建议解决方案,我得到:
就像我在第一次尝试中所说的那样,显示<sup>
而不是m 2 。
如果我在视图中这样做,我有很多不同类型的数据,我需要根据不同的类型在视图中添加检查数据类型代码,它的可行但会使视图凌乱,我觉得应该有一个简洁的方法来在控制器中解决它?
答案 0 :(得分:1)
您需要在视图中安全地呈现HTML,为此,您需要在字符串上调用html_safe
函数:
@str = "I<sub>tag</sub>".html_safe
现在,当您将此@str
传递给您的视图时,它会按预期呈现@str
。
在视图中:
<%= @str %>
<强>注意:强>
这样做是非常糟糕的做法。 <sub>ag</sub>
属于视图,因此它应该在视图中。您可以执行以下操作:
在控制器中:
@str = "tag"
并且在视野中:
I<sub><%= @str %></sub>
<%# or %>
<%= "I<sub>#{@str}</sub>" %>