【问题标题】:What does <%== %> do in rails erb?<%== %> 在 rails erb 中做了什么?
【发布时间】:2012-10-19 23:44:30
【问题描述】:

我最近看到这个,觉得很有趣。但是我真的不明白它的作用是什么?

例如。我有一个 Rails 应用程序,我想引导一些 json,这样我就不必提出第二个请求。通常我会写这样的东西。

&lt;%= raw @model.to_json %&gt; 要么 &lt;%= @model.to_json.html_safe %&gt;

我必须发送消息 rawhtml_safe 否则 json 将被 html 转义,因此无法正确解析。不过,这似乎也行得通。

&lt;%== @model.to_json %&gt;

但我找不到任何文档。

有谁知道这到底是做什么的?即它与调用html_saferaw 完全相同吗?还是还有更多?

【问题讨论】:

  • 它根本不是上面的副本。我从来没有见过

标签: ruby-on-rails ruby ruby-on-rails-3 erb


【解决方案1】:

&lt;%== 等价于raw

来自Ruby on Rails Guide

要逐字插入内容,请使用 raw 助手而不是调用 html_safe:

<%= raw @cms.current_template %> <%# inserts @cms.current_template as is %>

或者,等效地,使用&lt;%==

<%== @cms.current_template %> <%# inserts @cms.current_template as is %>

【讨论】:

  • 看了铁轨指南,不知道我怎么错过了?谢谢!
  • 这可以用于插值吗? "#{@something} &lt;p&gt;Is here&lt;/p&gt;" 还是只在字符串末尾使用 html_safe?
  • 感谢您的链接,这真的很难用谷歌搜索,因为谷歌似乎删除了这些字符,奇怪的是有许多指南和维基百科文章没有提到 &lt;%== %&gt;
【解决方案2】:

Rails 实际上使用Erubis 而不是 ERB,它支持各种其他东西。

&lt;%== 完全符合您的预期,不过:It emits the value unescaped

【讨论】:

  • 如果您添加一些内容来解决我最初的问题,“它与调用 html_safe 或 raw 完全相同吗?或者还有更多内容吗?”。我会接受这个作为答案。当我第一次读到这篇文章时,我觉得“很棒”,然后几乎接受了。
  • 我猜它与 Erubis 中的代码不完全相同,与在其他地方实现的 html_safe/raw 方法(rails?)。它的目标是让“按原样”嵌入内容变得更容易。我同意它没有很好地记录 - 当我找到这个问题时,我会自己发布同样的问题。 PS 接受的答案也是正确的:)
猜你喜欢
  • 2013-03-18
  • 1970-01-01
  • 1970-01-01
  • 2011-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多