aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/inheritance.rb
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #15762 from arthurnn/better_error_on_bad_alias_methodMatthew Draper2014-07-181-8/+2
|\ | | | | | | Dont swallow errors when bad alias_method
| * Dont swallow errors when bad alias_methodArthur Neves2014-06-241-8/+2
| |
* | Tiny follow-up to #15987 and 088b4c3e [ci skip]Robin Dupret2014-07-021-4/+4
| |
* | Move STI docs off of the main Base document, leaving a noteSean Griffin2014-06-301-0/+31
|/
* Move changed_attributes into dirty.rbKeenan Brock2014-01-221-0/+10
| | | Move serialization dirty into serialization.rb
* Don't try to get the subclass if the inheritance column doesn't existUjjwal Thaakar2014-01-141-7/+15
| | | | | | | The `subclass_from_attrs` method is called even if the column specified by the `inheritance_column` setting doesn't exist. This prevents setting associations via the attributes hash if the association name clashes with the value of the setting, typically `:type`. This worked previously in Rails 3.2.
* Set NameError#nameChulki Lee2014-01-131-1/+1
|
* Change all "can not"s to the correct "cannot".T.J. Schuck2014-01-031-1/+1
|
* Deprecate unused `symbolized_base_class` and `symbolized_sti_name`.Yves Senn2014-01-031-0/+2
| | | | | | | These methods were only used for the `IdentityMap` which was removed. They are no longer used internally and should be removed without replacement. As they were not `:nodoc:`'ed it's better to deprecate them before removal.
* no need to to_symAaron Patterson2013-10-091-1/+1
|
* minor comments cleanupNeeraj Singh2013-05-271-3/+4
|
* let Ruby do the is_a check for usAaron Patterson2013-05-161-3/+4
|
* Fix #new with an STI object with complex inheritanceNate Berkopec2013-04-021-1/+1
|
* Avoid short-circuit returnRafael Mendonça França2013-03-081-5/+9
|
* Merge pull request #9497 from route/subclass_from_attrsRafael Mendonça França2013-03-081-2/+3
|\ | | | | | | | | | | | | Fix ActiveRecord `subclass_from_attrs` when eager_load is false. Conflicts: activerecord/CHANGELOG.md
| * Fix ActiveRecord `subclass_from_attrs` when eager_load is false.Dmitry Vorotilin2013-03-061-2/+3
| | | | | | | | | | It cannot find subclass because all classes are loaded automatically when it needs.
* | More helpful error message when instantiating an abstract classAaron Weiner2013-03-031-0/+3
|/ | | | | | | | | | Calling a literal ActiveRecord::Base.new raises NoMethodError, since it ends up calling Class.abstract_class? which does not exist. Similarly, instantiating an actual abstract class hits the database, when conventionally it should immediately throw NotImplementedError. ActiveRecord::Base can't be made abstract without breaking many, many things, so check for it separately.
* Missing requireAkira Matsuda2013-01-071-0/+2
|
* Move instantiation responsibilities from Inheritance to Persistence. Have ↵Jeremy Kemper2012-11-291-24/+24
| | | | Inheritance#discriminate_class_for_record handle STI lookup duties.
* Added STI support to init and building associationsJason Rush2012-11-291-0/+26
| | | | | | | | Allows you to do BaseClass.new(:type => "SubClass") as well as parent.children.build(:type => "SubClass") or parent.build_child to initialize an STI subclass. Ensures that the class name is a valid class and that it is in the ancestors of the super class that the association is expecting.
* Remove ActiveRecord::ModelJon Leighton2012-10-261-29/+12
| | | | | | | | | | In the end I think the pain of implementing this seamlessly was not worth the gain provided. The intention was that it would allow plain ruby objects that might not live in your main application to be subclassed and have persistence mixed in. But I've decided that the benefit of doing that is not worth the amount of complexity that the implementation introduced.
* Revert "Get rid of the ActiveRecord::Model::DeprecationProxy thing."Jeremy Kemper2012-10-201-1/+1
| | | | This reverts commit 83846838252397b3781eed165ca301e05db39293.
* Get rid of the ActiveRecord::Model::DeprecationProxy thing.Jon Leighton2012-10-191-1/+1
| | | | | | | | | | | | | | | | | I think it's going to be too much pain to try to transition the :active_record load hook from executing against Base to executing against Model. For example, after Model is included in Base, and modules included in Model will no longer get added to the ancestors of Base. So plugins which wish to be compatible with both Model and Base should use the :active_record_model load hook which executes *before* Base gets loaded. In general, ActiveRecord::Model is an advanced feature at the moment and probably most people will continue to inherit from ActiveRecord::Base for the time being.
* rename AR::Model::Tag to AR::Tag - fixes #7714Francesco Rodriguez2012-09-201-2/+2
|
* removes usage of Object#in? from the code base (the method remains defined ↵Xavier Noria2012-08-061-1/+1
| | | | | | | | | | | | | | | | | | | by Active Support) Selecting which key extensions to include in active_support/rails made apparent the systematic usage of Object#in? in the code base. After some discussion in https://github.com/rails/rails/commit/5ea6b0df9a36d033f21b52049426257a4637028d we decided to remove it and use plain Ruby, which seems enough for this particular idiom. In this commit the refactor has been made case by case. Sometimes include? is the natural alternative, others a simple || is the way you actually spell the condition in your head, others a case statement seems more appropriate. I have chosen the one I liked the most in each case.
* load active_support/concern in active_support/railsXavier Noria2012-08-021-1/+0
|
* Refactor ActiveRecord::Inheritance.base_class logicbeerlington2012-07-261-18/+15
| | | | | | | | | Moved logic from class_of_active_record_descendant(class) to the base_class method. This method was confusing because it required an argument, but that argument was 'self'. Moved base_class tests to inheritance_test.rb and added some test coverage for some untested cases.
* Simplify AR configuration code.Jon Leighton2012-06-151-3/+7
| | | | | Get rid of ActiveModel::Configuration, make better use of ActiveSupport::Concern + class_attribute, etc.
* Adding documentation for ActiveRecord::Base.abstract_class to clarify a ↵Joe Goggins2012-03-221-0/+14
| | | | particular usecase for this feature (to allow you to use inheritance in ActiveRecord without using the STI table name
* Remove IdentityMapCarlos Antonio da Silva2012-03-131-20/+3
|
* give each PG type a `type` method and decortate tz attributesAaron Patterson2012-02-071-0/+1
|
* column types are passed from the result set to the instantiated AR objectAaron Patterson2012-02-071-2/+3
|
* Support establishing connection on ActiveRecord::Model.Jon Leighton2011-12-281-12/+8
| | | | | This is the 'top level' connection, inherited by any models that include ActiveRecord::Model or inherit from ActiveRecord::Base.
* Support configuration on ActiveRecord::Model.Jon Leighton2011-12-281-3/+3
| | | | | | | | | | | | | | | The problem: We need to be able to specify configuration in a way that can be inherited to models that include ActiveRecord::Model. So it is no longer sufficient to put 'top level' config on ActiveRecord::Base, but we do want configuration specified on ActiveRecord::Base and descendants to continue to work. So we need something like class_attribute that can be defined on a module but that is inherited when ActiveRecord::Model is included. The solution: added ActiveModel::Configuration module which provides a config_attribute macro. It's a bit specific hence I am not putting this in Active Support or making it a 'public API' at present.
* Extract common logic into a methodJon Leighton2011-12-241-9/+22
|
* I herd you like modules.Jon Leighton2011-12-241-4/+10
|
* Split out most of the AR::Base code into separate modules :cake:Jon Leighton2011-12-151-0/+167