Как делает один НЕ html_encode переменная в направляющих?

С направляющими, Если у меня есть переменная с содержимым HTML, как я произвожу его, незакодированный, по моему мнению, файл?

Этот код, например:

<% my_variable = "<b>Some Bolded Text</b>" %>
<%= my_variable %>

Выводы:

&lt;b&gt;Some Bolded Text&lt;/b&gt;
5
задан alex.zherdev 30 March 2010 в 07:23
поделиться

2 ответа

Вы используете Rails 3 Beta? Rails 2 по умолчанию не выводит HTML-код из вашего вывода, обычно вам нужно использовать помощник h , см. Сообщение Нейта. Если вы используете Rails 3, вам нужно либо использовать помощник raw , либо установить строку как безопасную для HTML. Примеры

<% my_variable = "<b>Some Bolded Text</b>" %>
<%= raw my_variable %>

или

<% my_variable = "<b>Some Bolded Text</b>".html_safe %>
<%= my_variable %>   

Проверьте свою версию Rails и свяжитесь с нами.

8
ответ дан 14 December 2019 в 04:34
поделиться

ActionView :: Helpers :: TextHelper предоставляет метод strip_tags, который вместо простого экранирования тегов полностью удаляет их.

источник [ссылка]:

 def strip_tags(html)     
    return html if html.blank?
    if html.index("<")
      text = ""
      tokenizer = HTML::Tokenizer.new(html)
      while token = tokenizer.next
        node = HTML::Node.parse(nil, 0, 0, token, false)
        # result is only the content of any Text nodes
        text << node.to_s if node.class == HTML::Text  
      end
      # strip any comments, and if they have a newline at the end (ie. line with
      # only a comment) strip that too
      text.gsub(/<!--(.*?)-->[\n]?/m, "") 
    else
      html # already plain text
    end 
  end

<%= strip_tags(my_variable) %>
0
ответ дан 14 December 2019 в 04:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: