diff options
author | Neeraj Singh <neerajdotname@gmail.com> | 2013-05-09 13:08:44 -0400 |
---|---|---|
committer | Neeraj Singh <neerajdotname@gmail.com> | 2013-10-14 11:59:59 -0400 |
commit | cd9592959f9f16b228ac3f4bc6fc92932253f8dc (patch) | |
tree | faed0751594dc3790c0a575c96c169c7571fe899 /activerecord/test/schema | |
parent | 25649c7fd74219881342b2cb59f97c08f646a4ea (diff) | |
download | rails-cd9592959f9f16b228ac3f4bc6fc92932253f8dc.tar.gz rails-cd9592959f9f16b228ac3f4bc6fc92932253f8dc.tar.bz2 rails-cd9592959f9f16b228ac3f4bc6fc92932253f8dc.zip |
scope_chain should not be mutated for other reflections
Currently `scope_chain` uses same array for building different
`scope_chain` for different associations. During processing
these arrays are sometimes mutated and because of in-place
mutation the changed `scope_chain` impacts other reflections.
Fix is to dup the value before adding to the `scope_chain`.
Fixes #3882.
Diffstat (limited to 'activerecord/test/schema')
-rw-r--r-- | activerecord/test/schema/schema.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/activerecord/test/schema/schema.rb b/activerecord/test/schema/schema.rb index 75711673a7..88a686d436 100644 --- a/activerecord/test/schema/schema.rb +++ b/activerecord/test/schema/schema.rb @@ -787,6 +787,22 @@ ActiveRecord::Schema.define do t.string 'from' end + create_table :hotels, force: true do |t| + end + create_table :departments, force: true do |t| + t.integer :hotel_id + end + create_table :cake_designers, force: true do |t| + end + create_table :drink_designers, force: true do |t| + end + create_table :chefs, force: true do |t| + t.integer :employable_id + t.string :employable_type + t.integer :department_id + end + + except 'SQLite' do # fk_test_has_fk should be before fk_test_has_pk create_table :fk_test_has_fk, :force => true do |t| |