Подтвердить что ты не робот

Вывод Html в режиме Rails 3

Я использую Rails 3. Я хочу отобразить сгенерированный html-фрагмент внутри шаблона erb

<%= "<div>Foo Bar</div>" %>

Rails кодирует теги div.

Если я прав в Rails 2 <%=h вызывает html-экранирование. Кажется, что он был изменен в Rails 3. Как вставить html-фрагмент без кодирования в Rails 3?

С уважением, Алексей.

4b9b3361

Ответ 1

Я предполагаю, что при кодировании вы подразумеваете html-экранирование:

Чтобы вывести raw html в Rails 3, вы можете использовать три разных подхода.

  • вы можете использовать вспомогательный raw для вывода raw html

    <% some_string = "<div>Hello World!</div>" %>
    <%= some_string %>
    <!-- outputs: &lt;div&gt;Hello Worlds!&lt;/div&gt; -->
    <%=raw some_string %>
    <!-- outputs: <div>Hello Worlds!</div> -->
    

    Дополнительная информация: ActionView:: Helpers:: OutputSafetyHelper # raw

  • Вы можете пометить строку как html_safe

    <% some_string = "<div>Hello World!</div>".html_safe %>
    <%= some_string %>
    <!-- outputs: <div>Hello World!</div> -->
    

    Дополнительная информация: String # html_safe и ActiveSupport:: SafeBuffer # new

  • Вы можете дезинфицировать ваш выход с помощью sanitize

    <%=sanitize "<div>Hello World!</div>", tags: %w( div ) %>
    

    Дополнительная информация: ActionView:: Помощники:: SanitizeHelper # sanitze

Дополнительная информация: