POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.

Поиграем в Ruby on Rails?

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


На немного хмельную голову я выдал первое решение что пришло: (слегка переписал):
config/locales/ru.yml
ru:
  class_name_translate:
    article: 'Статьи'
    tags: 'Тэги'

article_controller.rb
def 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, каким образом ещё можно решить данную задачу, решение пооптимальнее к примеру :)
Отбросим вопрос о том "зачем это вообще нужно" .
  • Вопрос задан
  • 315 просмотров
Решения вопроса 1
@vsuhachev
obj.model_name.human

И локализацию положить в ru.activerecord.models
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
POS_troi
@POS_troi Автор вопроса
СадоМазо Админ, флудер, троль.
Думаю правильно понял vsuhachev.
ru:
  activerecord:
    models:
      article: 'Статьи'
      tags: 'Тэги'


@article = Article.all
@article_model_ru = (@article.model_name.human).mb_chars.downcase


Спасибо, собственно этот вариант CapeRatel предлагал, я как-т пропустил мимо глаз, видимо 2 часа ночи не лучшее время :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы