【问题标题】:Ruby .to_sentenceRuby .to_sentence
【发布时间】:2012-10-13 22:21:56
【问题描述】:

.to_sentence 方法中,如何让 last_word_connector 输出 HTML 字符串?

例如:

locations.to_sentence last_word_connector: '<br />'

我希望 &lt;br /&gt; 被实际解释。我尝试在最后添加.html_safe,但无济于事。

【问题讨论】:

  • 不知道我明白你在问什么。 ["a", "b", "c"].to_sentence(last_word_connector: '&lt;br /&gt;') 产生 "a, b&lt;br /&gt;c",这是一个有效的 html 字符串。您究竟希望它产生什么?
  • 我希望
    被解释而不是实际输出到页面上。例如,如果我将连接器设置为 HELLO。输出将是粗体字 HELLO,而不是写在页面上的“HELLO”,因为那样会很愚蠢。
  • @Flambino - 现在这样做,对于已发布 cmets 且没有完整答案且应该留在那里的问题,我该怎么办?还是那些没有解决这种需求的答案并完成了?

标签: ruby-on-rails ruby methods


【解决方案1】:

您需要告诉视图该字符串是“安全的”插入(即它应该按原样插入 - 不是转义):

<%= locations.to_sentence(last_word_connector: '<br />').html_safe %>

html_safe 方法返回一个标记为 html 安全的字符串。所以它不会被逃脱。

谨慎使用。 Rails 默认转义字符串的原因是它使 html 和 javascript 注入尝试无害。所以如果你不能完全确定locations的内容,那就要小心了。

【讨论】:

猜你喜欢
  • 2012-03-30
  • 1970-01-01
  • 1970-01-01
  • 2013-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多