Итак, у меня есть вход для простого типа:
<%= f.input :preferred_locale, collection: languages_available, label: "Choose Language", selected: current_user.preferred_locale, include_blank: false %>
Так что это создает раскрывающийся список с языками, доступными в проекте. Доступные языки - это массив, подобный этому, помещенный в хелпер rails (расширение .rb, только ruby, файл):
def languages_available
[
["English", 'en'],
["Spanish", 'es'],
]
end
Дело в том, что нужно отображать значок рядом с языком, отображающим флаг страны. ,Дело в том, что в помощниках вы не можете написать HTML. Нет проблем, я знаю существование html_safe, поэтому в коллекции я сделал что-то вроде:
<%= f.input :preferred_locale, collection: languages_available.map { |e| e.map(&:html_safe) }, label: "Choose Language", selected: current_user.preferred_locale,include_blank: false %>
Так что это помечает как html_Safe каждую подстроку. С этим я никогда ничего не вижу, и я пытаюсь сделать что-то столь же простое, как положить в массив
def languages_available
[
["<b>English</b>", 'en'],
["Spanish", 'es'],
]
end
, что-то работает, так как я вижу только "английский", а не " английский"как обычный текст, но я не вижу слова жирным шрифтом, поэтому я не знаю, что не так.
edit: спасибо за ответы, похоже, что в коллекции, которая генерирует тег select, невозможно использовать html, так как он поддерживает только текст, мне нужно будет найти другой способ сделать это.