Skip to content

Commit fbdd36b

Browse files
wangjohnrafaelfranca
authored andcommitted
Creating a template for ApplicationModel.
The application model will keep all of the Active Record configurations, instead of sending the configurations directly to ActiveRecord::Base. This means it will be possible to configure multiple applications if each application has its own ApplicationModel. Also, changing some tests to correspond to these changes.
1 parent cf6b13b commit fbdd36b

File tree

7 files changed

+16
-13
lines changed

7 files changed

+16
-13
lines changed

activerecord/lib/rails/generators/active_record/model/model_generator.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def accessible_attributes
4444

4545
# Used by the migration template to determine the parent name of the model
4646
def parent_class_name
47-
options[:parent] || "ActiveRecord::Base"
47+
options[:parent] || "ApplicationModel"
4848
end
4949

5050
end
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class ApplicationModel < ActiveRecord::Base
2+
self.abstract_class = true
3+
end

railties/test/application/rake_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def test_should_not_eager_load_model_for_rake
9999
end
100100

101101
def test_code_statistics_sanity
102-
assert_match "Code LOC: 5 Test LOC: 0 Code to Test Ratio: 1:0.0",
102+
assert_match "Code LOC: 8 Test LOC: 0 Code to Test Ratio: 1:0.0",
103103
Dir.chdir(app_path){ `rake stats` }
104104
end
105105

railties/test/generators/model_generator_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def test_model_with_missing_attribute_type
2626

2727
def test_invokes_default_orm
2828
run_generator
29-
assert_file "app/models/account.rb", /class Account < ActiveRecord::Base/
29+
assert_file "app/models/account.rb", /class Account < ApplicationModel/
3030
end
3131

3232
def test_model_with_parent_option
@@ -52,7 +52,7 @@ def test_model_with_namespace
5252
assert_file "app/models/admin.rb", /module Admin/
5353
assert_file "app/models/admin.rb", /def self\.table_name_prefix/
5454
assert_file "app/models/admin.rb", /'admin_'/
55-
assert_file "app/models/admin/account.rb", /class Admin::Account < ActiveRecord::Base/
55+
assert_file "app/models/admin/account.rb", /class Admin::Account < ApplicationModel/
5656
end
5757

5858
def test_migration

railties/test/generators/namespaced_generators_test.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,15 @@ def test_module_file_is_not_created
9191

9292
def test_adds_namespace_to_model
9393
run_generator
94-
assert_file "app/models/test_app/account.rb", /module TestApp/, / class Account < ActiveRecord::Base/
94+
assert_file "app/models/test_app/account.rb", /module TestApp/, / class Account < ApplicationModel/
9595
end
9696

9797
def test_model_with_namespace
9898
run_generator ["admin/account"]
9999
assert_file "app/models/test_app/admin.rb", /module TestApp/, /module Admin/
100100
assert_file "app/models/test_app/admin.rb", /def self\.table_name_prefix/
101101
assert_file "app/models/test_app/admin.rb", /'test_app_admin_'/
102-
assert_file "app/models/test_app/admin/account.rb", /module TestApp/, /class Admin::Account < ActiveRecord::Base/
102+
assert_file "app/models/test_app/admin/account.rb", /module TestApp/, /class Admin::Account < ApplicationModel/
103103
end
104104

105105
def test_migration
@@ -201,7 +201,7 @@ def test_scaffold_on_invoke
201201
run_generator
202202

203203
# Model
204-
assert_file "app/models/test_app/product_line.rb", /module TestApp\n class ProductLine < ActiveRecord::Base/
204+
assert_file "app/models/test_app/product_line.rb", /module TestApp\n class ProductLine < ApplicationModel/
205205
assert_file "test/models/test_app/product_line_test.rb", /module TestApp\n class ProductLineTest < ActiveSupport::TestCase/
206206
assert_file "test/fixtures/test_app/product_lines.yml"
207207
assert_migration "db/migrate/create_test_app_product_lines.rb"
@@ -268,7 +268,7 @@ def test_scaffold_with_namespace_on_invoke
268268

269269
# Model
270270
assert_file "app/models/test_app/admin.rb", /module TestApp\n module Admin/
271-
assert_file "app/models/test_app/admin/role.rb", /module TestApp\n class Admin::Role < ActiveRecord::Base/
271+
assert_file "app/models/test_app/admin/role.rb", /module TestApp\n class Admin::Role < ApplicationModel/
272272
assert_file "test/models/test_app/admin/role_test.rb", /module TestApp\n class Admin::RoleTest < ActiveSupport::TestCase/
273273
assert_file "test/fixtures/test_app/admin/roles.yml"
274274
assert_migration "db/migrate/create_test_app_admin_roles.rb"
@@ -335,7 +335,7 @@ def test_scaffold_with_nested_namespace_on_invoke
335335

336336
# Model
337337
assert_file "app/models/test_app/admin/user/special.rb", /module TestApp\n module Admin/
338-
assert_file "app/models/test_app/admin/user/special/role.rb", /module TestApp\n class Admin::User::Special::Role < ActiveRecord::Base/
338+
assert_file "app/models/test_app/admin/user/special/role.rb", /module TestApp\n class Admin::User::Special::Role < ApplicationModel/
339339
assert_file "test/models/test_app/admin/user/special/role_test.rb", /module TestApp\n class Admin::User::Special::RoleTest < ActiveSupport::TestCase/
340340
assert_file "test/fixtures/test_app/admin/user/special/roles.yml"
341341
assert_migration "db/migrate/create_test_app_admin_user_special_roles.rb"

railties/test/generators/resource_generator_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,14 @@ def test_resource_routes_are_added
6060

6161
def test_plural_names_are_singularized
6262
content = run_generator ["accounts".freeze]
63-
assert_file "app/models/account.rb", /class Account < ActiveRecord::Base/
63+
assert_file "app/models/account.rb", /class Account < ApplicationModel/
6464
assert_file "test/models/account_test.rb", /class AccountTest/
6565
assert_match(/\[WARNING\] The model name 'accounts' was recognized as a plural, using the singular 'account' instead\. Override with --force-plural or setup custom inflection rules for this noun before running the generator\./, content)
6666
end
6767

6868
def test_plural_names_can_be_forced
6969
content = run_generator ["accounts", "--force-plural"]
70-
assert_file "app/models/accounts.rb", /class Accounts < ActiveRecord::Base/
70+
assert_file "app/models/accounts.rb", /class Accounts < ApplicationModel/
7171
assert_file "test/models/accounts_test.rb", /class AccountsTest/
7272
assert_no_match(/\[WARNING\]/, content)
7373
end

railties/test/generators/scaffold_generator_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def test_scaffold_on_invoke
1111
run_generator
1212

1313
# Model
14-
assert_file "app/models/product_line.rb", /class ProductLine < ActiveRecord::Base/
14+
assert_file "app/models/product_line.rb", /class ProductLine < ApplicationModel/
1515
assert_file "test/models/product_line_test.rb", /class ProductLineTest < ActiveSupport::TestCase/
1616
assert_file "test/fixtures/product_lines.yml"
1717
assert_migration "db/migrate/create_product_lines.rb", /belongs_to :product, index: true/
@@ -135,7 +135,7 @@ def test_scaffold_with_namespace_on_invoke
135135

136136
# Model
137137
assert_file "app/models/admin.rb", /module Admin/
138-
assert_file "app/models/admin/role.rb", /class Admin::Role < ActiveRecord::Base/
138+
assert_file "app/models/admin/role.rb", /class Admin::Role < ApplicationModel/
139139
assert_file "test/models/admin/role_test.rb", /class Admin::RoleTest < ActiveSupport::TestCase/
140140
assert_file "test/fixtures/admin/roles.yml"
141141
assert_migration "db/migrate/create_admin_roles.rb"

0 commit comments

Comments
 (0)