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:
parent
085db5e128
commit
7d548f795d
2 changed files with 10 additions and 4 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue