1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Changed ActiveRecord::Base.human_name to underscore the class name before it humanizes it

This gives you 'Post comment' rather than 'Postcomment' by default.

Signed-off-by: Michael Koziarski <michael@koziarski.com>
[#2120 state:committed]
This commit is contained in:
Justin French 2009-06-29 15:54:09 +02:00 committed by Michael Koziarski
parent 085db5e128
commit 7d548f795d
2 changed files with 10 additions and 4 deletions

View file

@ -1404,14 +1404,14 @@ module ActiveRecord #:nodoc:
end
# Transform the modelname into a more humane format, using I18n.
# Defaults to the basic humanize method.
# By default, it will underscore then humanize the class name (BlogPost.human_name #=> "Blog post").
# Default scope of the translation is activerecord.models
# Specify +options+ with additional translating options.
def human_name(options = {})
defaults = self_and_descendants_from_active_record.map do |klass|
:"#{klass.name.underscore}"
end
defaults << self.name.humanize
end
defaults << self.name.underscore.humanize
I18n.translate(defaults.shift, {:scope => [:activerecord, :models], :count => 1, :default => defaults}.merge(options))
end

View file

@ -5,14 +5,20 @@ require 'models/company'
require 'models/company_in_module'
require 'models/subscriber'
require 'models/pirate'
require 'models/price_estimate'
class ReflectionTest < ActiveRecord::TestCase
fixtures :topics, :customers, :companies, :subscribers
fixtures :topics, :customers, :companies, :subscribers, :price_estimates
def setup
@first = Topic.find(1)
end
def test_human_name
assert_equal "Price estimate", PriceEstimate.human_name
assert_equal "Subscriber", Subscriber.human_name
end
def test_column_null_not_null
subscriber = Subscriber.find(:first)
assert subscriber.column_for_attribute("name").null