From 945aa8746694cbfcb9c525fe94d276cdee70fbc4 Mon Sep 17 00:00:00 2001 From: Yasuo Honda Date: Thu, 5 Aug 2021 12:32:43 +0900 Subject: [PATCH] Address "NameError: Rails couldn't find a valid model for Club association" This commit addresses CI failure of Active Record isolation tests. https://buildkite.com/rails/rails/builds/79936 Follow up #41392 * Steps to reproduce ```ruby $ cd activerecord $ bin/test test/cases/associations/belongs_to_associations_test.rb test/cases/associations/has_many_associations_test.rb test/cases/associations/has_many_through_disable_joins_associations_test.rb test/cases/associations/has_one_associations_test.rb test/cases/connection_adapters/schema_cache_test.rb test/cases/inheritance_test.rb test/cases/migration_test.rb test/cases/store_test.rb test/cases/strict_loading_test.rb ``` Since the entire output is too long, here is the minimum case fixed by this commit. ```ruby $ cd activerecord $ bin/test test/cases/associations/belongs_to_associations_test.rb:38 Using sqlite3 Run options: --seed 34180 E Error: BelongsToAssociationsTest#test_belongs_to: NameError: Rails couldn't find a valid model for Club association. Please provide the :class_name option on the association declaration. If :class_name is already provided, make sure it's an ActiveRecord::Base subclass. /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/reflection.rb:431:in `rescue in compute_class' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/reflection.rb:422:in `compute_class' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/reflection.rb:372:in `klass' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/reflection.rb:722:in `association_primary_key' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/reflection.rb:727:in `join_primary_key' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixture_set/table_row.rb:150:in `block in resolve_sti_reflections' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixture_set/table_row.rb:138:in `each_value' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixture_set/table_row.rb:138:in `resolve_sti_reflections' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixture_set/table_row.rb:92:in `fill_row_model_attributes' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixture_set/table_row.rb:70:in `initialize' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixture_set/table_rows.rb:36:in `new' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixture_set/table_rows.rb:36:in `block in build_table_rows_from' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixture_set/table_rows.rb:35:in `each' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixture_set/table_rows.rb:35:in `map' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixture_set/table_rows.rb:35:in `build_table_rows_from' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixture_set/table_rows.rb:18:in `initialize' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:692:in `new' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:692:in `table_rows' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:633:in `block (2 levels) in insert' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:632:in `each' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:632:in `block in insert' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:629:in `each' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:629:in `insert' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:615:in `read_and_insert' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:567:in `create_fixtures' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/test_fixtures.rb:268:in `load_fixtures' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/test_fixtures.rb:122:in `setup_fixtures' /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/test_fixtures.rb:10:in `before_setup' bin/test test/cases/associations/belongs_to_associations_test.rb:38 Finished in 0.083668s, 11.9520 runs/s, 0.0000 assertions/s. 1 runs, 0 assertions, 0 failures, 1 errors, 0 skips $ ``` --- .../test/cases/associations/belongs_to_associations_test.rb | 1 + .../test/cases/associations/has_many_associations_test.rb | 1 + .../has_many_through_disable_joins_associations_test.rb | 1 + .../test/cases/associations/has_one_associations_test.rb | 1 + activerecord/test/cases/inheritance_test.rb | 1 + activerecord/test/cases/store_test.rb | 1 + activerecord/test/cases/strict_loading_test.rb | 1 + 7 files changed, 7 insertions(+) diff --git a/activerecord/test/cases/associations/belongs_to_associations_test.rb b/activerecord/test/cases/associations/belongs_to_associations_test.rb index c9a4abe956..b6e379f063 100644 --- a/activerecord/test/cases/associations/belongs_to_associations_test.rb +++ b/activerecord/test/cases/associations/belongs_to_associations_test.rb @@ -29,6 +29,7 @@ require "models/book" require "models/citation" require "models/tree" require "models/node" +require "models/club" class BelongsToAssociationsTest < ActiveRecord::TestCase fixtures :accounts, :companies, :developers, :projects, :topics, diff --git a/activerecord/test/cases/associations/has_many_associations_test.rb b/activerecord/test/cases/associations/has_many_associations_test.rb index 26370f7823..72ca063b57 100644 --- a/activerecord/test/cases/associations/has_many_associations_test.rb +++ b/activerecord/test/cases/associations/has_many_associations_test.rb @@ -40,6 +40,7 @@ require "models/subscriber" require "models/subscription" require "models/zine" require "models/interest" +require "models/human" class HasManyAssociationsTestForReorderWithJoinDependency < ActiveRecord::TestCase fixtures :authors, :author_addresses, :posts, :comments diff --git a/activerecord/test/cases/associations/has_many_through_disable_joins_associations_test.rb b/activerecord/test/cases/associations/has_many_through_disable_joins_associations_test.rb index 2f5791c87f..578bd9a8e1 100644 --- a/activerecord/test/cases/associations/has_many_through_disable_joins_associations_test.rb +++ b/activerecord/test/cases/associations/has_many_through_disable_joins_associations_test.rb @@ -11,6 +11,7 @@ require "models/member_type" require "models/pirate" require "models/treasure" +require "models/parrot" require "models/hotel" require "models/department" diff --git a/activerecord/test/cases/associations/has_one_associations_test.rb b/activerecord/test/cases/associations/has_one_associations_test.rb index b7f211c24f..dfe7aac54b 100644 --- a/activerecord/test/cases/associations/has_one_associations_test.rb +++ b/activerecord/test/cases/associations/has_one_associations_test.rb @@ -17,6 +17,7 @@ require "models/chef" require "models/department" require "models/club" require "models/membership" +require "models/parrot" class HasOneAssociationsTest < ActiveRecord::TestCase self.use_transactional_tests = false unless supports_savepoints? diff --git a/activerecord/test/cases/inheritance_test.rb b/activerecord/test/cases/inheritance_test.rb index b2de225711..6d297685a4 100644 --- a/activerecord/test/cases/inheritance_test.rb +++ b/activerecord/test/cases/inheritance_test.rb @@ -11,6 +11,7 @@ require "models/subscriber" require "models/vegetables" require "models/shop" require "models/sponsor" +require "models/club" module InheritanceTestHelper def with_store_full_sti_class(&block) diff --git a/activerecord/test/cases/store_test.rb b/activerecord/test/cases/store_test.rb index e13726b636..f75c971715 100644 --- a/activerecord/test/cases/store_test.rb +++ b/activerecord/test/cases/store_test.rb @@ -3,6 +3,7 @@ require "cases/helper" require "models/admin" require "models/admin/user" +require "models/account" class StoreTest < ActiveRecord::TestCase fixtures :'admin/users' diff --git a/activerecord/test/cases/strict_loading_test.rb b/activerecord/test/cases/strict_loading_test.rb index 052cca9fc7..1616337663 100644 --- a/activerecord/test/cases/strict_loading_test.rb +++ b/activerecord/test/cases/strict_loading_test.rb @@ -12,6 +12,7 @@ require "models/ship_part" require "models/strict_zine" require "models/interest" require "models/treasure" +require "models/pirate" class StrictLoadingTest < ActiveRecord::TestCase fixtures :developers, :developers_projects, :projects, :ships