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

Ruby on Rails Helper Method - HTML отображается как обычный текст

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

4b9b3361

Ответ 1

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

def my_helper
  data = "<p>Hello!</p>"
  data.html_safe
end

Ответ 2

Я предполагаю, что это была проблема с обработкой Rails html. от rails changelog

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

попробуйте

Ответ 3

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

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

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

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