aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/base.rb
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2014-06-30 09:29:32 -0600
committerSean Griffin <sean@thoughtbot.com>2014-06-30 09:29:32 -0600
commit088b4c3e7673902831077e45ba6fcc7c90045f7c (patch)
tree30e1d41bf83c9f0689207232fa972fc35b3be639 /activerecord/lib/active_record/base.rb
parent3b9d2b8d86aa2b1288cd31bfb044746c6f1573d5 (diff)
downloadrails-088b4c3e7673902831077e45ba6fcc7c90045f7c.tar.gz
rails-088b4c3e7673902831077e45ba6fcc7c90045f7c.tar.bz2
rails-088b4c3e7673902831077e45ba6fcc7c90045f7c.zip
Move STI docs off of the main Base document, leaving a note
Diffstat (limited to 'activerecord/lib/active_record/base.rb')
-rw-r--r--activerecord/lib/active_record/base.rb31
1 files changed, 3 insertions, 28 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index e93e4b6e3d..64cc5b68cc 100644
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -220,34 +220,9 @@ module ActiveRecord #:nodoc:
#
# == Single table inheritance
#
- # Active Record allows inheritance by storing the name of the class in a column that by
- # default is named "type" (can be changed by overwriting <tt>Base.inheritance_column</tt>).
- # This means that an inheritance looking like this:
- #
- # class Company < ActiveRecord::Base; end
- # class Firm < Company; end
- # class Client < Company; end
- # class PriorityClient < Client; end
- #
- # When you do <tt>Firm.create(name: "37signals")</tt>, this record will be saved in
- # the companies table with type = "Firm". You can then fetch this row again using
- # <tt>Company.where(name: '37signals').first</tt> and it will return a Firm object.
- #
- # Be aware that because the type column is an attribute on the record every new
- # subclass will instantly be marked as dirty and the type column will be included
- # in the list of changed attributes on the record. This is different from non
- # STI classes:
- #
- # Company.new.changed? # => false
- # Firm.new.changed? # => true
- # Firm.new.changes # => {"type"=>["","Firm"]}
- #
- # If you don't have a type column defined in your table, single-table inheritance won't
- # be triggered. In that case, it'll work just like normal subclasses with no special magic
- # for differentiating between them or reloading the right type with find.
- #
- # Note, all the attributes for all the cases are kept in the same table. Read more:
- # http://www.martinfowler.com/eaaCatalog/singleTableInheritance.html
+ # Active Record allows inheritance by storing the name of the class in a
+ # column that is named "type" by default. See ActiveRecord::Inheritance for
+ # more details.
#
# == Connection to multiple databases in different models
#