Вспомогательный метод Ruby on Rails - HTML отображается в виде простого текста - PullRequest
17 голосов
/ 27 января 2011

У меня есть вспомогательный метод для моего приложения на Rails, который возвращает строку с HTML-кодом для формы подписки на группы Google.К сожалению, он появляется на странице как обычный текст.Как я могу заставить его отображать как HTML?Заранее спасибо.

Ответы [ 3 ]

54 голосов
/ 27 января 2011

Результат вашего помощника должен быть помечен как "html_safe" в Rails 3. В противном случае теги будут экранированы.

def my_helper
  data = "<p>Hello!</p>"
  data.html_safe
end
2 голосов
/ 27 января 2011

Полагаю, это была проблема с Rails hitml sanitize. из рельсов история изменений

Вам больше не нужно вызывать h (строка) чтобы избежать вывода HTML, он включен по умолчанию во всех шаблонах просмотра. если ты хотите неэкранированную строку, вызовите сырец (строка).

попробуйте

1 голос
/ 16 января 2014

Одна вещь, на которую следует обратить внимание, - это объединение нескольких строк, подобных этой

def custom_check_box(checked)
    '<span class="my-custom-checkbox '+( checked ? 'checked' : '')+'"></span>'.html_safe
end

В этом случае только последняя часть помечается как безопасная HTML. Убедитесь, что вы все поняли.

def custom_check_box(checked)
    ('<span class="my-custom-checkbox '+( checked ? 'checked' : '')+'"></span>').html_safe
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...