Что делает <% ==%> в rails erb?
Я видел это недавно, подумал, что это интересно. Но я действительно не понимаю, что он делает?
Ex. У меня есть приложение rails, и я хочу загрузить json, так что мне не нужно делать второй запрос. Обычно я писал бы что-то вроде этого.
<%= raw @model.to_json %>
или
<%= @model.to_json.html_safe %>
Мне нужно отправить сообщение raw
или html_safe
, или json будет html экранирован и, следовательно, не будет правильно разобран. Однако, похоже, это тоже работает.
<%== @model.to_json %>
Но я не могу найти документацию.
Кто-нибудь знает, что именно это делает? То есть то же самое, что и вызов html_safe
или raw
? Или есть еще что-нибудь?
Ответы
Ответ 1
<%==
эквивалентен raw
.
Из Ruby on Rails Guide:
Чтобы вставить что-то дословно, используйте помощник raw
вместо вызова html_safe
:
<%= raw @cms.current_template %> <%# inserts @cms.current_template as is %>
или, что то же самое, используйте <%==
:
<%== @cms.current_template %> <%# inserts @cms.current_template as is %>
Ответ 2
Rails фактически использует Erubis вместо ERB, который поддерживает множество других вещей.
<%==
точно так же, как вы ожидаете: Он испускает значение без сохранения