**Rails 4 `.model_name`**
In Rails 4, it returns an [`ActiveModel::Name`](
[To see links please register here]
) object which contains many useful more "semantic" attributes such as:
FooBar.model_name.param_key
#=> "foo_bar"
FooBar.model_name.route_key
#=> "foo_bars"
FooBar.model_name.human
#=> "Foo bar"
So you should use one of those if they match your desired meaning, which is likely the case. Advantages:
- easier to understand your code
- your app will still work even in the (unlikely) event that Rails decides to change a naming convention.
BTW, `human` has the advantage of being I18N aware.