在 Controller 中,我可以将字符串传递给 View 。
如何传递带下标的字符串?
在 html 中很简单,只需使用 <sub>
标签。
我尝试了3次将这个下标传递给view但是失败了。
- 如果我通过
<sub>
在字符串中,它将显示I<sub>tag</sub>
而不是我标记。 - 如果我使用
string1="string"+<sub>+"tag"+</sub>
,并通过string1
, Controller 会报错! - 最后,我尝试直接在页面中复制下标字符串,我 也出现无法显示的错误。
如何传递下标字符串来查看?我必须循环不同的条件,所以我不能每次都使用 <sub>
标记,我需要从 Controller 传递。
编辑:
我在 Controller 中试过这段代码
@valuedisplay=@value.to_s + " m/s<sup>2</sup>".html_safe
按照建议的解决方案,我得到:
正如我在第一次尝试时所说的那样,显示<sup>
而不是 m2。
如果我在 View 中做,我有很多不同类型的数据,我需要根据不同的类型在 View 中添加检查数据类型的代码,它是可行的但会使 View 变得困惑,我觉得应该有一个简洁的方法来在 Controller 中解决?
最佳答案
您需要在您的 View 中安全地呈现 HTML,为此,您需要调用 html_safe
在你的字符串上运行:
@str = "I<sub>tag</sub>".html_safe
而且,现在当你通过这个 @str
在您看来,它将呈现 @str
正如预期的那样。
在 View 中:
<%= @str %>
注意:
这样做是非常糟糕的做法。 <sub>ag</sub>
属于 View ,所以应该在 View 中。您可以执行以下操作:
在 Controller 中:
@str = "tag"
在 View 中:
I<sub><%= @str %></sub>
<%# or %>
<%= "I<sub>#{@str}</sub>" %>
关于html - 在 Controller 中生成下标并传递给 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31203371/