如何在 Rails3 中禁用 HTML 标签的自动转换?我在某些 Controller View 中有输出。例如,我有输出简单 HTML 链接集的方法..
[:en, :de].map{ |locale| link_to locate.to_s.upcase , { :locale => locate } ...
鉴于我正在调用我的方法 <%= my_method %>
结果我得到了这个:
| <a href="/login?class=language_selected&amp;locale=en">EN</a>
如何禁用它?
最佳答案
我没有使用过 Rails3,所以不能保证。但看起来这与您的方法返回一个列表这一事实有关。
Rails 通常会通过转义特殊字符并显示数据的 html 转义解释来格式化内部数据结构以进行输出。
尝试将 .join 添加到 map 调用的末尾以返回字符串
[:en, :de].map{ |locale|
link_to locate.to_s.upcase , { :locale => locate }
...
}.join("<br/>")
rwilliams 又名 r-dub 使用 raw 的建议可能是此代码的必要补充。然而,列表中的 raw 可能会因为内部 to_string
调用而给您带来不良结果。这是隐式连接(“”)。因此,除了返回字符串之外,还要将 raw 添加到方法调用中。
<%= raw my_method %>
关于ruby-on-rails-3 - 导轨3 : how to disable automatic conversion of HTML tags?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4178142/