Мой помощник по рельсам отображает '<' как '<'!Как заставить это сделать правильно? - PullRequest
6 голосов
/ 05 ноября 2010

Я работаю над простым плагином здесь, и до сих пор он работает.Кроме моего помощника.Это очень простой помощник, ему просто нужно вывести <span></span> для последующего анализа javascript.

Проблема в том, что он не корректирует html-код, он заменяет специальные символы htmlэквивалентный код.

Мой инициализатор плагина:

ActionView::Helpers.send :include, Test

Мой помощник плагина:

module Test    
  def only_for_testing
    render(:text => "<span></span>")
  end
end

Когда я вызываю only_for_testing внутри представления вместо рендеринга "<span></span>" рендеринг "&lt;span&gt;&lt;/span&gt;"

Я попытался удалить рендер, вернуть только строку, тот же эффект.Я действительно не хочу создавать частичное для этого, потому что это очень очень простой HTML, и это не для разметки, это просто для разбора.

Есть идеи, что я, возможно, сделал здесь неправильно?

Ответы [ 3 ]

16 голосов
/ 05 ноября 2010

Rails 3 по умолчанию экранирует HTML в представлении.Вам нужно использовать помощник raw () или «HTML-строку здесь» .html_safe

6 голосов
/ 05 ноября 2010
module Test    
  def only_for_testing
    render(:html=> "<span></span>")
  end
end
3 голосов
/ 25 марта 2012

в rails 3.2, мой помощник не распознал символ ": html", но я верю, что его заменили на «: inline», так как это то, что у меня сработало

module IndexHelper
    def logo
        render(:inline=> "<div class='css_name'></div>")
    end
end
...