aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/models
Commit message (Collapse)AuthorAgeFilesLines
...
* | Improve the derivation of HABTM assocation join table namesAndrew White2012-06-221-0/+5
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve the derivation of HABTM join table name to take account of nesting. It now takes the table names of the two models, sorts them lexically and then joins them, stripping any common prefix from the second table name. Some examples: Top level models (Category <=> Product) Old: categories_products New: categories_products Top level models with a global table_name_prefix (Category <=> Product) Old: site_categories_products New: site_categories_products Nested models in a module without a table_name_prefix method (Admin::Category <=> Admin::Product) Old: categories_products New: categories_products Nested models in a module with a table_name_prefix method (Admin::Category <=> Admin::Product) Old: categories_products New: admin_categories_products Nested models in a parent model (Catalog::Category <=> Catalog::Product) Old: categories_products New: catalog_categories_products Nested models in different parent models (Catalog::Category <=> Content::Page) Old: categories_pages New: catalog_categories_content_pages Also as part of this commit the validity checks for HABTM assocations have been moved to ActiveRecord::Reflection One side effect of this is to move when the exceptions are raised from the point of declaration to when the association is built. This is consistant with other association validity checks.
* Removing composed_of from ActiveRecord.Steve Klabnik2012-06-182-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This feature adds a lot of complication to ActiveRecord for dubious value. Let's talk about what it does currently: class Customer < ActiveRecord::Base composed_of :balance, :class_name => "Money", :mapping => %w(balance amount) end Instead, you can do something like this: def balance @balance ||= Money.new(value, currency) end def balance=(balance) self[:value] = balance.value self[:currency] = balance.currency @balance = balance end Since that's fairly easy code to write, and doesn't need anything extra from the framework, if you use composed_of today, you'll have to add accessors/mutators like that. Closes #1436 Closes #2084 Closes #3807
* Ensure that mass assignment options are preservedAndrew White2012-06-101-1/+20
| | | | | | | | | | | | | | | | There are two possible scenarios where the @mass_assignment_options instance variable can become corrupted: 1. If the assign_attributes doesn't complete correctly, then subsequent calls to a nested attribute assignment method will use whatever options were passed to the previous assign_attributes call. 2. With nested assign_attributes calls, the inner call will overwrite the current options. This will only affect nested attributes as the attribute hash is sanitized before any methods are called. To fix this we save the current options in a local variable and then restore these options in an ensure block.
* Refactor aggregation writer methodCarlos Antonio da Silva2012-05-211-1/+0
| | | | Only constantize class_name once.
* Merge pull request #6143 from senny/composed_of_converter_returns_nilAaron Patterson2012-05-211-0/+5
|\ | | | | allow the :converter Proc form composed_of to return nil
| * allow the :converter Proc form composed_of to return nilYves Senn2012-05-031-0/+5
| | | | | | | | | | | | | | This makes it possible to filter invalid input values before they are passed into the value-object (like empty strings). This behaviour is only relevant if the :allow_nil options is set to true. Otherwise you will get the resulting NoMethodError.
* | Custom coders support for ActiveRecord::Store. JSON, YAML, Marshal can be ↵Andrey Voronkov2012-05-091-0/+2
| | | | | | | | used out of the box.
* | Fix issue with private kernel methods and collection associations. Closes #2508Carlos Antonio da Silva2012-05-021-0/+5
| | | | | | | | | | | | | | | | Change CollectionProxy#method_missing to use scoped.public_send, to avoid a problem described in issue #2508 when trying to use class methods with names like "open", that clash with private kernel methods. Also changed the dynamic matcher instantiator to send straight to scoped, to avoid another roundtrip to method_missing.
* | find and replace deprecated keysJon Leighton2012-04-271-1/+1
| |
* | %s/find(:\(first\|last\|all\), \([^()]*\))/scoped(\2).\1/gcI amongst other ↵Jon Leighton2012-04-273-8/+8
| | | | | | | | things
* | remove unnecessary test codeJon Leighton2012-04-271-5/+1
| |
* | remove deprecated scope stuffJon Leighton2012-04-263-22/+2
| |
* | remove unused methodJon Leighton2012-04-251-6/+0
| |
* | remove tests for #with_scope (it's now deprecated)Jon Leighton2012-04-251-6/+0
| |
* | extract deprecated codeJon Leighton2012-04-251-2/+2
| |
* | Adds test to check that circular preloading does not modify Model.unscoped ↵Benedikt Deicke2012-04-031-0/+2
| | | | | | | | (as described in #5667)
* | Merge pull request #5334 from courtland/masterJon Leighton2012-03-301-0/+6
|\ \ | | | | | | Fix deleting from a HABTM join table upon destroying an object of a model with optimistic locking enabled.
| * | Tests for removing a HABTM association when optimistic locking is enabled.Nick Rogers2012-03-071-0/+6
| | |
* | | Deprecate eager-evaluated scopes.Jon Leighton2012-03-2116-61/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't use this: scope :red, where(color: 'red') default_scope where(color: 'red') Use this: scope :red, -> { where(color: 'red') } default_scope { where(color: 'red') } The former has numerous issues. It is a common newbie gotcha to do the following: scope :recent, where(published_at: Time.now - 2.weeks) Or a more subtle variant: scope :recent, -> { where(published_at: Time.now - 2.weeks) } scope :recent_red, recent.where(color: 'red') Eager scopes are also very complex to implement within Active Record, and there are still bugs. For example, the following does not do what you expect: scope :remove_conditions, except(:where) where(...).remove_conditions # => still has conditions
* | | Not need to pass join attributes to association buildRafael Mendonça França2012-03-072-9/+9
| | |
* | | Add test case to has_many through association when mass_assignment_sanitizer isRafael Mendonça França2012-03-053-0/+13
|/ / | | | | | | :strict
* | added test for #3732Rick Martinez2012-02-103-1/+12
| |
* | Allow store to be a not null column.Jeremy Walker2012-02-021-0/+1
| |
* | test_get_ids_for_ordered_association fixedgregolsen2012-01-311-1/+1
| |
* | ids_reader method fixed, test added to has_many associationgregolsen2012-01-311-0/+1
| |
* | Fix bug where reset_counters resets the wrong counter cache.David Peter2012-01-162-0/+8
| | | | | | | | | | | | | | | | If a model belongs_to two associations with the same class, then reset_counters will reset the wrong counter cache. Finding the right reflection should use the foreign_key instead, which should be unique.
* | Deprecate inferred JOINs with includes + SQL snippets.Jon Leighton2012-01-163-3/+6
| | | | | | | | | | | | See the CHANGELOG for details. Fixes #950.
* | Revert "Deprecate implicit eager loading. Closes #950."Jon Leighton2012-01-163-5/+5
| | | | | | | | This reverts commit c99d507fccca2e9e4d12e49b4387e007c5481ae9.
* | Fixed after_initialize callbacks call on AR model #dupBogdan Gusiev2012-01-071-0/+5
| |
* | Merge branch 'master' of git://github.com/rails/railsDmitry Polushkin2011-12-3128-33/+93
|\ \
| * | Test fixtures with custom model and table namesAlexey Muranov2011-12-302-0/+6
| | | | | | | | | | | | | | | | | | Test using fixtures with random names and model names, that is not following naming conventions but using set_fixture_class instead. It is expected that the table name be defined in the model, but this is not explicitly tested here. This will need to be fixed.
| * | Deprecate implicit eager loading. Closes #950.Jon Leighton2011-12-293-5/+5
| | |
| * | Support establishing connection on ActiveRecord::Model.Jon Leighton2011-12-281-0/+3
| | | | | | | | | | | | | | | This is the 'top level' connection, inherited by any models that include ActiveRecord::Model or inherit from ActiveRecord::Base.
| * | Support nested AR::ModelsJon Leighton2011-12-241-0/+8
| | |
| * | Add test for inheritance from a non-AR superclassJon Leighton2011-12-241-0/+11
| | |
| * | I herd you like modules.Jon Leighton2011-12-241-0/+13
| | |
| * | serialize fails on subclassAlvaro Bautista2011-12-231-0/+4
| | |
| * | added failing tests for has_many, has_one and belongs_to associations with ↵Jakub Kuźma2011-12-211-2/+2
| | | | | | | | | | | | strict mass assignment sanitizer, fixed build_record to not merge creation_attributes, removed failing nested attributes tests (that feature was broken anyway) #4051
| * | call scope within unscoped to prevent duplication of where valuesSergey Nartimov2011-12-171-0/+2
| | |
| * | Allow nested attributes in associations to update values in it's owner ↵Andrew Kaspick2011-12-141-1/+4
| | | | | | | | | | | | object. Fixes a regression from 3.0.x
| * | Fix #3890. (Calling proxy_association in scope chain.)Jon Leighton2011-12-081-1/+5
| | |
| * | Deprecate set_locking_column in favour of self.locking_column=Jon Leighton2011-11-291-1/+1
| | |
| * | Deprecate set_primary_key in favour of self.primary_key=Jon Leighton2011-11-2912-14/+14
| | |
| * | Deprecate set_sequence_name in favour of self.sequence_name=Jon Leighton2011-11-291-1/+1
| | |
| * | Deprecate set_inheritance_column in favour of self.inheritance_column=Jon Leighton2011-11-291-1/+2
| | |
| * | Deprecate set_table_name in favour of self.table_name= or defining your own ↵Jon Leighton2011-11-293-5/+5
| | | | | | | | | | | | method.
| * | don't change class definition in test caseJosh Susser2011-11-291-0/+4
| | |
| * | use GeneratedFeatureMethods module for associationsJosh Susser2011-11-271-1/+0
| | |
| * | Allow the :class_name option for associations to take a symbol.Jon Leighton2011-11-041-0/+1
| | | | | | | | | | | | | | | This is to avoid confusing newbies, and to be consistent with the fact that other options like :foreign_key already allow a symbol or a string.
| * | Tests gotta run in 1.8 tooJeremy Kemper2011-10-131-2/+2
| | |