Что делает в 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? Или это еще не все?

2 ответов


<%== эквивалентно raw.

С Ruby on Rails Guide:

вставить что-то дословно использую raw helper вместо вызова html_safe:

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

или, что эквивалентно, используйте <%==:

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

Rails фактически использует erubis аппликации вместо ERB, который поддерживает множество других вещей.

<%== именно так, как вы ожидаете, хотя: он испускает значение unescaped