Принуждение «очеловеченных» имен полей к нижнему регистру в Rails 3

StackOverflow https://stackoverflow.com/questions/4846841

Вопрос

Насколько мне известно, общепринятым способом установки "очеловеченных" имен полей в 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:

родовое слово

Я бы тоже предпочел другое решение.Но пока это единственное, что мне удалось найти.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top