Вчера с товарищем
CapeRatel у нас возник такой вопрос:
Не подскажите как из объекта @article вывести переведенное на русский язык имя класса в нижнем регистре.
На немного хмельную голову я выдал первое решение что пришло:
(слегка переписал):
config/locales/ru.ymlru:
class_name_translate:
article: 'Статьи'
tags: 'Тэги'
article_controller.rbdef get_articles
@article = Article.all
@tag = Tag.all
@article_model_ru = translate_model_name(@article).mb_chars.downcase
@tag_model_ru = translate_model_name(@tag).mb_chars.downcase
end
private
def translate_model_name(obj)
I18n.t(obj.model_name.i18n_key, scope: :class_name_translate)
end
Вот собственно вопрос к людям плотно занимающимся RoR, каким образом ещё можно решить данную задачу, решение пооптимальнее к примеру :)
Отбросим вопрос о том "зачем это вообще нужно" .