Принуждение «очеловеченных» имен полей к нижнему регистру в Rails 3
-
27-10-2019 - |
Вопрос
Насколько мне известно, общепринятым способом установки "очеловеченных" имен полей в Rails 3 является использование локалей:
родовое словоОднако я просто хочу, чтобы Rails 3 использовал строчные версии своих гуманизированных имен по умолчанию.Есть ли простой встроенный способ сделать это?
Пример, помогающий прояснить ситуацию: внутри кода form_for
по умолчанию для <%= f.label :username %>
отображается "Имя пользователя".Я хочу, чтобы отображалось «имя пользователя».
Решение
Вспомогательная функция label
по умолчанию использует дляпревратить атрибут в человеческое имя.Если вы посмотрите на источник, human_attribute_name
попробует несколько вещей, прежде чем вернуться к attributes.to_s.humanize
.Сначала он пробует перевод, а затем ищет параметр :default
в хэше параметров.
Итак, самый простой / лучший способ получить желаемую функциональность - это заменить human_attribute_name
вашим собственным, который предоставляет опцию :default
, а затем вызывает оригинал.Rails предоставляет разумный способ делать такие вещи с помощью alias_method_chain
, поэтому ...
Я наслушался, дайте мне ответ!
Поместите следующее в любой файл в config/initializers
и перезапустите приложение:
Другие советы
У меня была такая же проблема. Решил через css:
В foo.html.erb:
родовое словоВ bar.css:
родовое словоЯ бы тоже предпочел другое решение.Но пока это единственное, что мне удалось найти.