What does <%== %> do in rails erb?

mwoods79 picture mwoods79 · Oct 30, 2012 · Viewed 8.3k times · Source

I saw this recently, thought it was interesting. But I don't really understand what it does?

Ex. I have a rails app and I want to bootstrap some json, so that I don't have to make a second request. Normally I would write something like this.

<%= raw @model.to_json %> or <%= @model.to_json.html_safe %>

I have to send the message raw or html_safe or the json will be html escaped and thus not parsed correctly. However, this seems to work too.

<%== @model.to_json %>

But I can't find any documentation.

Does anyone know what this does exactly? i.e. Is it the exact same as calling html_safe or raw? Or is there more to it?

Answer

Stefan picture Stefan · Oct 30, 2012

<%== is equivalent to raw.

From the Ruby on Rails Guide:

To insert something verbatim use the raw helper rather than calling html_safe:

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

or, equivalently, use <%==:

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