Changeset 6013
- Timestamp:
- 01/23/07 04:19:16 (2 years ago)
- Files:
-
- trunk/activerecord/CHANGELOG (modified) (1 diff)
- trunk/activerecord/lib/active_record/base.rb (modified) (1 diff)
- trunk/activerecord/test/fixtures/company.rb (modified) (1 diff)
- trunk/activerecord/test/inheritance_test.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/activerecord/CHANGELOG
r6012 r6013 1 1 *SVN* 2 3 * Subclasses of an abstract class work with single-table inheritance. #5704, #7284 [BertG, nick+rails@ag.arizona.edu] 2 4 3 5 * Make sure sqlite3 driver closes open connections on disconnect [Rob Rasmussen] trunk/activerecord/lib/active_record/base.rb
r5913 r6013 818 818 end 819 819 820 def descends_from_active_record? # :nodoc: 821 superclass == Base || !columns_hash.include?(inheritance_column) 820 # True if this isn't a concrete subclass needing a STI type condition. 821 def descends_from_active_record? 822 if superclass.abstract_class? 823 superclass.descends_from_active_record? 824 else 825 superclass == Base || !columns_hash.include?(inheritance_column) 826 end 822 827 end 823 828 trunk/activerecord/test/fixtures/company.rb
r5264 r6013 1 class Company < ActiveRecord::Base 1 class AbstractCompany < ActiveRecord::Base 2 self.abstract_class = true 3 end 4 5 class Company < AbstractCompany 2 6 attr_protected :rating 3 7 set_sequence_name :companies_nonstd_seq trunk/activerecord/test/inheritance_test.rb
r5751 r6013 6 6 class InheritanceTest < Test::Unit::TestCase 7 7 fixtures :companies, :projects, :subscribers, :accounts 8 9 def test_company_descends_from_active_record 10 assert_raise(NoMethodError) { ActiveRecord::Base.descends_from_active_record? } 11 assert AbstractCompany.descends_from_active_record?, 'AbstractCompany should descend from ActiveRecord::Base' 12 assert Company.descends_from_active_record?, 'Company should descend from ActiveRecord::Base' 13 assert !Class.new(Company).descends_from_active_record?, 'Company subclass should not descend from ActiveRecord::Base' 14 end 8 15 9 16 def test_a_bad_type_column