модуль ActionView::Helpers::OutputSafetyHelper
Справочник по обработке необработанного вывода Action View
Публичные методы экземпляров
# File actionview/lib/action_view/helpers/output_safety_helper.rb, line 18 def raw(stringish) stringish.to_s.html_safe end
Этот метод выводит строку без экранирования. Поскольку экранирование тегов теперь включено по умолчанию, его можно использовать, когда вам не нужно, чтобы Rails автоматически экранировал теги. Не рекомендуется использовать, если данные поступают от пользователя.
Например:
raw @user.name # => 'Jimmy <alert>Tables</alert>'
# File actionview/lib/action_view/helpers/output_safety_helper.rb, line 33
def safe_join(array, sep = $,)
sep = ERB::Util.unwrapped_html_escape(sep)
array.flatten.map! { |i| ERB::Util.unwrapped_html_escape(i) }.join(sep).html_safe
end Этот метод возвращает строку, безопасную для HTML, аналогично тому, что возвращает Array#join. Массив сжимается, и все элементы, включая разделитель, экранируются как HTML, если они не являются безопасными для HTML, а возвращаемая строка помечается как безопасная для HTML.
safe_join([tag.p("foo"), "<p>bar</p>"], "<br>")
# => "<p>foo</p><br><p>bar</p>"
safe_join([tag.p("foo"), tag.p("bar")], tag.br)
# => "<p>foo</p><br><p>bar</p>"
# File actionview/lib/action_view/helpers/output_safety_helper.rb, line 43
def to_sentence(array, options = {})
options.assert_valid_keys(:words_connector, :two_words_connector, :last_word_connector, :locale)
default_connectors = {
words_connector: ", ",
two_words_connector: " and ",
last_word_connector: ", and "
}
if defined?(I18n)
i18n_connectors = I18n.translate(:'support.array', locale: options[:locale], default: {})
default_connectors.merge!(i18n_connectors)
end
options = default_connectors.merge!(options)
case array.length
when 0
"".html_safe
when 1
ERB::Util.html_escape(array[0])
when 2
safe_join([array[0], array[1]], options[:two_words_connector])
else
safe_join([safe_join(array[0...-1], options[:words_connector]), options[:last_word_connector], array[-1]], nil)
end
end Преобразует массив в предложение с запятыми, где последний элемент соединяется с помощью слова-соединителя. Это версия, учитывающая html_safe, метода ActiveSupport Array#to_sentence.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.