У меня есть вспомогательный метод для моего приложения Rails, который возвращает строку с кодом HTML для формы подписки на группы Google. К сожалению, он появляется на странице, как обычный текст. Как заставить инструмент отображать HTML? Спасибо заранее.
Ruby on Rails Helper Method - HTML отображается как обычный текст
Ответ 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