Ruby on Rails перевод на Русский имени модели

Странный вопрос мне задали на Toster, спросили как в “рельсах” получить перевод на русский язык имя модели/класса.

Сам вопрос:

CapeRatel:
POS_troi: Ну да. Не подскажите как из обьекта @article вывести переведенное на русский язык имя класса в нижнем регистре. А то г..кодить не хочется.

Выданное решение:

config/locales/ru.yml

1
2
3
4
ru:
  class_name_translate:
    article: 'Статьи'
    tags: 'Тэги'

в контроллерах

1
2
3
4
5
6
7
8
9
10
11
def get_articles
  @article = Article.all
  @tag = Tag.all
  @article_ru = translate_model_name(@article).mb_chars.downcase
  @tag_ru = translate_model_name(@tag).mb_chars.downcase
end

#в application.rb
def translate_model_name(obj)
  I18n.t(obj.model_name.i18n_key, scope: :class_name_translate)
end

Есть у кого идеи предложения? Прошу под кат в комментарии, интересно мнение “рэльсистов” :)

Комментарии