Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Define id_was to get the previous value of the primary key | Rafael Mendonça França | 2014-08-06 | 1 | -1/+7 |
| | | | | | | | | | Currently when we call id_was and we have a custom primary key name Active Record will return the current value of the primary key. This make impossible to correctly do an update operation if you change the id. Fixes #16413 | ||||
* | Move writing unknown column exception to null attribute | Sean Griffin | 2014-06-26 | 1 | -5/+2 |
| | | | | | | Making this change revealed several subtle bugs related to models with no primary key, and anonymous classes. These have been fixed as well, with regression tests added. | ||||
* | Use a conditional rather than early return in `id` | Sean Griffin | 2014-06-12 | 1 | -3/+4 |
| | |||||
* | Fix performance regression on preloading HABTM associations | Sean Griffin | 2014-06-12 | 1 | -0/+1 |
| | | | | | | | | | | | We'd spend a lot of time calling `hash` and `eql?` on the join model, which has no primary key. Calling `id` with no primary key is a really slow way to get back `nil`, so we can improve the performance there. However, even with the escape clause, we *still* weren't getting high enough performance, as we were checking the primary key too much. `hash` will always return `nil.hash` for records with no id, and `==` will always return `false`. We can optimize those cases in the HABTM join model. | ||||
* | safely publish columns and columns hash info | Aaron Patterson | 2013-03-14 | 1 | -1/+1 |
| | |||||
* | Reduced memory leak problem in transactions by lazily updating AR objects ↵ | wangjohn | 2013-02-20 | 1 | -0/+5 |
| | | | | with new transaction state. If AR object has a callback, the callback will be performed immediately (non-lazily) so the transaction still has to keep records with callbacks. | ||||
* | change unless !blank? to if blank? in get_primary_key | Angelo capilleri | 2013-01-08 | 1 | -1/+1 |
| | |||||
* | update AR/attribute_methods documentation [ci skip] | Francesco Rodriguez | 2012-09-21 | 1 | -11/+15 |
| | |||||
* | Set primary key with id= only if primary key exists | Guillermo Iguaran | 2012-09-16 | 1 | -1/+1 |
| | |||||
* | Remove mass assignment security from ActiveRecord | Guillermo Iguaran | 2012-09-16 | 1 | -2/+1 |
| | |||||
* | much code can be deleted thanks to @tenderlove's refactoring | Jon Leighton | 2012-03-28 | 1 | -6/+0 |
| | |||||
* | Remove unusused variables | Jon Leighton | 2012-03-04 | 1 | -3/+2 |
| | |||||
* | move id_before_type_cast to PrimaryKey module | Sergey Nartimov | 2012-02-16 | 1 | -1/+10 |
| | |||||
* | handle id attribute in PrimaryKey module | Sergey Nartimov | 2012-02-11 | 1 | -0/+6 |
| | |||||
* | Expanded rdoc about primary keys being protected from mass assignment. | Joost Baaij | 2012-01-06 | 1 | -1/+2 |
| | | | People need to make sure they are generated internally or added to attr_accessible so they can be mass assigned (for instance, from an import job). | ||||
* | remove deprecated set and original methods for table_name, primary_key, etc | Sergey Nartimov | 2011-12-21 | 1 | -9/+0 |
| | |||||
* | Fix the build on postgres. Note: we should probably actually make schema ↵ | Jon Leighton | 2011-12-16 | 1 | -1/+1 |
| | | | | mutations bust the cache. | ||||
* | Don't store defaults in the schema cache | Jon Leighton | 2011-12-16 | 1 | -2/+2 |
| | |||||
* | Cache columns at the model level. | Jon Leighton | 2011-12-16 | 1 | -2/+0 |
| | | | | Allows two models to use the same table but have different primary keys. | ||||
* | Fix #3987. | Jon Leighton | 2011-12-15 | 1 | -0/+2 |
| | |||||
* | Use a separate module for 'external' attribute methods. | Jon Leighton | 2011-12-14 | 1 | -3/+3 |
| | |||||
* | use the schema cache when asking for the primary key | Aaron Patterson | 2011-12-12 | 1 | -1/+1 |
| | |||||
* | Revert "Roflscaling!" (for now) | Jon Leighton | 2011-12-02 | 1 | -2/+2 |
| | | | | | | | | This reverts commit f6b5046305d43c5f64bcb6fed0e44f7bca99a603. Fear not, the roflscale will return when I have a bit more time and figure out a better way to do it. (In particular, a way that doesn't break the build.) | ||||
* | Roflscaling! | Jon Leighton | 2011-12-01 | 1 | -2/+2 |
| | | | | | Don't prefix the name with attribute_. Avoids a string allocation on read_attribute, which is a bit faster. | ||||
* | Add test for read_attribute(:id) with non-standard PK. | Jon Leighton | 2011-12-01 | 1 | -0/+14 |
| | | | | | | | | Also make it actually work. It slows down all read_attribute accesses to map 'id' to whatever the PK actually is, inside read_attribute. So instead make sure the necessary methods are defined and that they redirect wherever they need to go. | ||||
* | Get rid of the underscore versions of attribute methods! | Jon Leighton | 2011-12-01 | 1 | -2/+1 |
| | | | | This makes me happy! | ||||
* | If the table behind has no primary key, do not ask again and just return nil. | Julius de Bruijn | 2011-11-30 | 1 | -1/+2 |
| | |||||
* | Use inheritance to avoid special-case code for the 'id' method | Jon Leighton | 2011-11-30 | 1 | -0/+20 |
| | |||||
* | #id is an alias for whatever the primary key is | Jon Leighton | 2011-11-30 | 1 | -1/+1 |
| | |||||
* | Deprecate set_primary_key in favour of self.primary_key= | Jon Leighton | 2011-11-29 | 1 | -20/+26 |
| | |||||
* | Revert "Raise error on unknown primary key." | Jon Leighton | 2011-10-05 | 1 | -7/+0 |
| | | | | This reverts commit ee2be435b1e5c0e94a4ee93a1a310e0471a77d07. | ||||
* | Raise error on unknown primary key. | Jon Leighton | 2011-10-05 | 1 | -0/+7 |
| | | | | | If we don't have a primary key when we ask for it, it's better to fail fast. Fixes GH #2307. | ||||
* | Don't require a DB connection when setting primary key. | Jon Leighton | 2011-09-26 | 1 | -1/+0 |
| | | | | Closes #2807. | ||||
* | Revert "to_key on a destroyed model should return nil". Closes #2440 | Santiago Pastorino | 2011-08-05 | 1 | -3/+2 |
| | | | | This reverts commit c5448721b5054b8a467958d60427fdee15eac604. | ||||
* | to_key on a destroyed model should return nil | Santiago Pastorino | 2011-07-09 | 1 | -1/+1 |
| | |||||
* | Remove trailing white-spaces | Guillermo Iguaran | 2011-06-05 | 1 | -1/+1 |
| | |||||
* | Quote find_in_batches ORDER BY clause [#6620 state:resolved] | Andrew White | 2011-03-29 | 1 | -1/+12 |
| | |||||
* | primary keys should not be cleared on cache clear, fixing oracle tests | Aaron Patterson | 2011-02-08 | 1 | -0/+1 |
| | |||||
* | stop redifining methods on every call to set_primary_key | Aaron Patterson | 2010-12-24 | 1 | -4/+11 |
| | |||||
* | returning id (for some yet to be discovered reason) | Aaron Patterson | 2010-12-20 | 1 | -1/+1 |
| | |||||
* | define_attr_method must serialize nil correctly | Aaron Patterson | 2010-12-20 | 1 | -2/+6 |
| | |||||
* | if there is no base name, we cannot determine a primary key | Aaron Patterson | 2010-12-20 | 1 | -2/+4 |
| | |||||
* | remove some lasigns | Aaron Patterson | 2010-12-20 | 1 | -6/+6 |
| | |||||
* | use persisted? instead of new_record? wherever possible | David Chelimsky | 2010-11-09 | 1 | -3/+4 |
| | | | | | | | | | | | - persisted? is the API defined in ActiveModel - makes it easier for extension libraries to conform to ActiveModel APIs without concern for whether the extended object is specifically ActiveRecord [#5927 state:committed] Signed-off-by: Santiago Pastorino <santiago@wyeworks.com> | ||||
* | Revert "Makes AR use AMo to_key implementation" | Santiago Pastorino | 2010-08-15 | 1 | -0/+6 |
| | | | | This reverts commit 36a84a4f15f29b41c7cac2f8de410055006a8a8d. | ||||
* | Makes AR use AMo to_key implementation | Santiago Pastorino | 2010-08-13 | 1 | -6/+0 |
| | | | | [#5249] | ||||
* | Make sure valid? preceives the context as in ActiveModel API (ht: Carlos ↵ | José Valim | 2010-05-10 | 1 | -1/+1 |
| | | | | Antonio) | ||||
* | Fix dom_id for ActiveRecord [#4296 state:resolved] | José Valim | 2010-03-30 | 1 | -16/+6 |
| | |||||
* | Add to_key and to_param methods to ActiveModel::Conversion. | José Valim | 2010-02-21 | 1 | -1/+1 |
| | |||||
* | AMo #key is now #to_key and CI is probably happy | snusnu | 2010-02-20 | 1 | -3/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Obviously #key is a too common name to be included in the AMo interface, #to_key fits better and also relates nicely to #to_param. Thx wycats, koz and josevalim for the suggestion. AR's #to_key implementation now takes customized primary keys into account and there's a testcase for that too. The #to_param AMo lint makes no assumptions on how the method behaves in the presence of composite primary keys. It leaves the decision wether to provide a default, or to raise and thus signal to the user that implementing this method will need his special attention, up to the implementers. All AMo cares about is that #to_param is implemented and returns nil in case of a new_record?. The default CompliantObject used in lint_test provides a naive default implementation that just joins all key attributes with '-'. The #to_key default implementation in lint_test's CompliantObject now returns [id] instead of [1]. This was previously causing the (wrong) tests I added for AR's #to_key implementation to pass. The #to_key tests added with this patch should be better. The CI failure was caused by my lack of knowledge about the test:isolated task. The tests for the record_identifier code in action_controller are using fake non AR models and I forgot to stub the #to_key method over there. This issue didn't come up when running the test task, only test:isolated revealed it. This patch fixes that. All tests pass isolated or not, well, apart from one previously unpended test in action_controller that is unrelated to my patch. |