57

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

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

<%= raw @model.to_json %> 或者 <%= @model.to_json.html_safe %>

我必须发送消息raw,否则html_safejson 将被 html 转义,因此无法正确解析。但是,这似乎也有效。

<%== @model.to_json %>

但我找不到任何文档。

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

4

2 回答 2

70

<%==相当于raw

来自Ruby on Rails 指南

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

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

或者,等效地,使用<%==

<%== @cms.current_template %> <%# inserts @cms.current_template as is %>
于 2012-10-30T15:49:04.500 回答
11

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

<%==完全符合您的预期:它发出未转义的值

于 2012-10-30T15:40:39.313 回答