How can I translate ActiveRecord model class name?
activerecord, internationalization, ruby-on-rails
Solution
See:
http://api.rubyonrails.org/classes/ActiveModel/Naming.html http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models
So, for example, on an AR class use:
Person.model_name.human
or from an AR instance:
person.class.model_name.human
Problem
What is the simplest way to get translated name of ActiveRecord model class when I have an instance of it? For example - I have model class like this: ``` class Category < ActiveRecord::Base ... end ``` I have an instance of the class: ``` category = Category.first ``` And I have YAML file `config/locales/cs.yml`: ``` cs: activerecord: models: category: Kategorie ``` And I need to do this dynamicaly, even when I don't previously know with what model class' instance I will be dealing. So I don't want to explicitly specify "activerecord.models.category". Is there an easy way to do this? I know, that I can do something like this ``` "activerecord.models.#{category.class.name.underscore}" ``` But there has to be a better way to do this.