1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activerecord/test/models
Jon Leighton 8606a7fbe9 Fix scope chaining + STI
See #9869 and #9929.

The problem arises from the following example:

    class Project < ActiveRecord::Base
      scope :completed, -> { where completed: true }
    end

    class MajorProject < Project
    end

When calling:

    MajorProject.where(tasks_count: 10).completed

This expands to:

    MajorProject.where(tasks_count: 10).scoping {
      MajorProject.completed
    }

However the lambda for the `completed` scope is defined on Project. This
means that when it is called, `self` is Project rather than
MajorProject. So it expands to:

    MajorProject.where(tasks_count: 10).scoping {
      Project.where(completed: true)
    }

Since the scoping was applied on MajorProject, and not Project, this
fails to apply the tasks_count condition.

The solution is to make scoping apply across STI classes. I am slightly
concerned about the possible side-effects of this, but no tests fail and
it seems ok. I guess we'll see.
2013-04-05 13:14:28 +01:00
..
admin define Active Record Store accessors in a module 2013-02-11 17:00:55 +03:00
autoloadable Fix ActiveRecord subclass_from_attrs when eager_load is false. 2013-03-06 11:46:07 +04:00
admin.rb
aircraft.rb
arunit2_model.rb added test for #3732 2012-02-10 17:35:22 -05:00
author.rb rename Relation#uniq to Relation#distinct. #uniq still works. 2013-03-15 14:15:47 +01:00
auto_id.rb
binary.rb
bird.rb
book.rb rename Relation#uniq to Relation#distinct. #uniq still works. 2013-03-15 14:15:47 +01:00
boolean.rb
bulb.rb Make sure the tests pass in the case closer to described in #8195 2012-12-10 17:35:16 -03:00
car.rb Convert association macros to the new syntax 2012-07-20 14:14:51 +01:00
categorization.rb Deprecate eager-evaluated scopes. 2012-03-21 22:18:18 +00:00
category.rb Goodbye there, very special rubbish! 2013-01-24 18:40:59 +09:00
citation.rb
club.rb
college.rb added test for #3732 2012-02-10 17:35:22 -05:00
column_name.rb
comment.rb Fix scope chaining + STI 2013-04-05 13:14:28 +01:00
company.rb Added STI support to init and building associations 2012-11-29 05:50:34 +00:00
company_in_module.rb Revert "Unused methods, module, etc." 2013-01-24 21:44:02 +09:00
computer.rb
contact.rb Add some coverage for AR serialization with serializable_hash 2012-06-22 08:28:03 -03:00
contract.rb
country.rb
course.rb added test for #3732 2012-02-10 17:35:22 -05:00
customer.rb Revert "Removing composed_of from ActiveRecord." 2012-07-27 19:25:14 -03:00
dashboard.rb
default.rb
developer.rb Fix .update_all and .delete_all when using a condition on a joined table 2013-01-11 12:31:09 -05:00
dog.rb Update other counter caches on destroy 2013-03-20 13:43:07 -07:00
dog_lover.rb Update other counter caches on destroy 2013-03-20 13:43:07 -07:00
edge.rb
electron.rb
engine.rb
entrant.rb
essay.rb
event.rb
eye.rb
face.rb
friendship.rb Refactor Person/Friendship relationships to be more intuitive 2013-03-17 02:11:19 -04:00
guid.rb
interest.rb
invoice.rb
item.rb
job.rb
joke.rb
keyboard.rb
legacy_thing.rb
lesson.rb
line_item.rb
liquid.rb rename Relation#uniq to Relation#distinct. #uniq still works. 2013-03-15 14:15:47 +01:00
man.rb
matey.rb
member.rb Use method compilation for association methods 2012-08-10 23:28:08 +01:00
member_detail.rb
member_type.rb
membership.rb
minimalistic.rb
minivan.rb
mixed_case_monkey.rb
molecule.rb
movie.rb
order.rb
organization.rb Deprecate eager-evaluated scopes. 2012-03-21 22:18:18 +00:00
owner.rb has_many through obeys order on through association 2013-04-04 15:45:13 -04:00
parrot.rb
person.rb Refactor Person/Friendship relationships to be more intuitive 2013-03-17 02:11:19 -04:00
pet.rb Add missing require to inheritance test 2013-04-03 14:48:57 -03:00
pirate.rb allow to pass Symbol or Proc into :limit option of #accepts_nested_attributes_for 2012-08-26 03:02:05 +03:00
possession.rb Fix pluck when columns/tables are reserved words. 2012-09-05 18:00:07 -04:00
post.rb Fix cases where delete_records on a has_many association caused errors 2013-01-27 15:36:29 +00:00
price_estimate.rb Fix nested association references 2012-09-12 23:32:50 +01:00
project.rb rename Relation#uniq to Relation#distinct. #uniq still works. 2013-03-15 14:15:47 +01:00
randomly_named_c1.rb Test fixtures with custom model and table names 2011-12-30 10:34:01 +01:00
rating.rb
reader.rb Prevent Relation#merge from collapsing wheres on the RHS 2013-01-27 20:34:52 +00:00
reference.rb Rename update_attributes method to update, keep update_attributes as an alias 2013-01-03 11:51:21 -05:00
reply.rb unused scope 2013-01-02 05:48:56 +09:00
ship.rb
ship_part.rb
shop.rb
speedometer.rb test case to prevent duplicated associations with custom PK. 2013-02-24 16:49:47 +01:00
sponsor.rb Convert association macros to the new syntax 2012-07-20 14:14:51 +01:00
string_key_object.rb
student.rb
subject.rb
subscriber.rb
subscription.rb Fix reset_counters() crashing on has_many :through associations. 2012-10-02 23:49:32 +08:00
tag.rb
tagging.rb rm unnecessary test 2012-07-20 19:35:02 +01:00
task.rb Revert "Unused methods, module, etc." 2013-01-24 21:44:02 +09:00
topic.rb Describing the reason for defining BlankTopic#blank? which will never be called 2013-01-24 22:07:43 +09:00
toy.rb Deprecate eager-evaluated scopes. 2012-03-21 22:18:18 +00:00
traffic_light.rb test case for serialize default values. 2013-03-07 17:26:35 +01:00
treasure.rb Accept belongs_to assoc. keys in ActiveRecord queries 2012-09-11 14:11:51 -04:00
treaty.rb
tyre.rb
vegetables.rb rewrite inheritance tests with a custom inheritance_column 2012-09-03 20:30:43 +02:00
vertex.rb
warehouse_thing.rb
wheel.rb
without_table.rb Deprecate eager-evaluated scopes. 2012-03-21 22:18:18 +00:00
zine.rb