diff options
author | Sean Griffin <sean@seantheprogrammer.com> | 2015-10-20 16:57:47 -0600 |
---|---|---|
committer | Sean Griffin <sean@seantheprogrammer.com> | 2015-10-20 16:57:47 -0600 |
commit | 5c32f41d5258743500345db34839a21139676f8e (patch) | |
tree | be9d7d97069165f2f9a3a72e56195599efd03a09 /activerecord/test | |
parent | d94ae72a5259c31ea510e6341bbbf4e920312ebe (diff) | |
parent | df94dabb374de5a109de0756c4c19b18375cd5af (diff) | |
download | rails-5c32f41d5258743500345db34839a21139676f8e.tar.gz rails-5c32f41d5258743500345db34839a21139676f8e.tar.bz2 rails-5c32f41d5258743500345db34839a21139676f8e.zip |
Fix merge conflicts for #19938
This is a separate commit, as it is not just a changelog conflict. Want
to point out the changes in the code
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/associations/eager_test.rb | 12 | ||||
-rw-r--r-- | activerecord/test/models/developer.rb | 2 | ||||
-rw-r--r-- | activerecord/test/models/mentor.rb | 3 | ||||
-rw-r--r-- | activerecord/test/models/project.rb | 1 | ||||
-rw-r--r-- | activerecord/test/schema/schema.rb | 6 |
5 files changed, 24 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/eager_test.rb b/activerecord/test/cases/associations/eager_test.rb index ddfb856a05..bc1bff79d3 100644 --- a/activerecord/test/cases/associations/eager_test.rb +++ b/activerecord/test/cases/associations/eager_test.rb @@ -24,6 +24,8 @@ require 'models/membership' require 'models/club' require 'models/categorization' require 'models/sponsor' +require 'models/mentor' +require 'models/contract' class EagerAssociationTest < ActiveRecord::TestCase fixtures :posts, :comments, :authors, :essays, :author_addresses, :categories, :categories_posts, @@ -1218,6 +1220,16 @@ class EagerAssociationTest < ActiveRecord::TestCase assert_no_queries { assert_equal 2, posts[1].categories[0].categorizations.length } end + def test_eager_load_multiple_associations_with_references + mentor = Mentor.create!(name: "Barış Can DAYLIK") + developer = Developer.create!(name: "Mehmet Emin İNAÇ", mentor: mentor) + Contract.create!(developer: developer) + project = Project.create!(name: "VNGRS", mentor: mentor) + project.developers << developer + projects = Project.references(:mentors).includes(mentor: { developers: :contracts }, developers: :contracts) + assert_equal projects.last.mentor.developers.first.contracts, projects.last.developers.last.contracts + end + test "scoping with a circular preload" do assert_equal Comment.find(1), Comment.preload(:post => :comments).scoping { Comment.find(1) } end diff --git a/activerecord/test/models/developer.rb b/activerecord/test/models/developer.rb index 7c5941b1af..9a907273f8 100644 --- a/activerecord/test/models/developer.rb +++ b/activerecord/test/models/developer.rb @@ -15,6 +15,8 @@ class Developer < ActiveRecord::Base end end + belongs_to :mentor + accepts_nested_attributes_for :projects has_and_belongs_to_many :shared_computers, class_name: "Computer" diff --git a/activerecord/test/models/mentor.rb b/activerecord/test/models/mentor.rb new file mode 100644 index 0000000000..11f1e4bff8 --- /dev/null +++ b/activerecord/test/models/mentor.rb @@ -0,0 +1,3 @@ +class Mentor < ActiveRecord::Base + has_many :developers +end
\ No newline at end of file diff --git a/activerecord/test/models/project.rb b/activerecord/test/models/project.rb index 5328330653..b034e0e267 100644 --- a/activerecord/test/models/project.rb +++ b/activerecord/test/models/project.rb @@ -1,4 +1,5 @@ class Project < ActiveRecord::Base + belongs_to :mentor has_and_belongs_to_many :developers, -> { distinct.order 'developers.name desc, developers.id desc' } has_and_belongs_to_many :readonly_developers, -> { readonly }, :class_name => "Developer" has_and_belongs_to_many :non_unique_developers, -> { order 'developers.name desc, developers.id desc' }, :class_name => 'Developer' diff --git a/activerecord/test/schema/schema.rb b/activerecord/test/schema/schema.rb index d334a2740e..690ab1af4b 100644 --- a/activerecord/test/schema/schema.rb +++ b/activerecord/test/schema/schema.rb @@ -253,6 +253,7 @@ ActiveRecord::Schema.define do t.string :first_name t.integer :salary, default: 70000 t.integer :firm_id + t.integer :mentor_id if subsecond_precision_supported? t.datetime :created_at, precision: 6 t.datetime :updated_at, precision: 6 @@ -452,6 +453,10 @@ ActiveRecord::Schema.define do t.string :name end + create_table :mentors, force: true do |t| + t.string :name + end + create_table :minivans, force: true, id: false do |t| t.string :minivan_id t.string :name @@ -660,6 +665,7 @@ ActiveRecord::Schema.define do t.string :name t.string :type t.integer :firm_id + t.integer :mentor_id end create_table :randomly_named_table1, force: true do |t| |