aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2018-09-25 01:45:31 +0900
committerGitHub <noreply@github.com>2018-09-25 01:45:31 +0900
commit06274428e534f8e12fc7d6904a89678b23c5b404 (patch)
tree20e710493a17f143e8a91fff9889fd4b62904be4 /railties
parentd03cc170c1bdad15245be7f2681a265fd2bd0d5d (diff)
parent3b954786e7876ad63c917ed1dae310624c8ccf33 (diff)
downloadrails-06274428e534f8e12fc7d6904a89678b23c5b404.tar.gz
rails-06274428e534f8e12fc7d6904a89678b23c5b404.tar.bz2
rails-06274428e534f8e12fc7d6904a89678b23c5b404.zip
Merge pull request #33959 from eugeneius/eager_load_attribute_methods
Eagerly define attribute methods in production
Diffstat (limited to 'railties')
-rw-r--r--railties/test/application/configuration_test.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/railties/test/application/configuration_test.rb b/railties/test/application/configuration_test.rb
index 8c10413525..9b01d42b1e 100644
--- a/railties/test/application/configuration_test.rb
+++ b/railties/test/application/configuration_test.rb
@@ -310,6 +310,53 @@ module ApplicationTests
assert_equal %w(noop_email).to_set, PostsMailer.instance_variable_get(:@action_methods)
end
+ test "does not eager load attribute methods in development" do
+ app_file "app/models/post.rb", <<-RUBY
+ class Post < ActiveRecord::Base
+ end
+ RUBY
+
+ app_file "config/initializers/active_record.rb", <<-RUBY
+ ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
+ ActiveRecord::Migration.verbose = false
+ ActiveRecord::Schema.define(version: 1) do
+ create_table :posts do |t|
+ t.string :title
+ end
+ end
+ RUBY
+
+ app "development"
+
+ assert_not_includes Post.instance_methods, :title
+ end
+
+ test "eager loads attribute methods in production" do
+ app_file "app/models/post.rb", <<-RUBY
+ class Post < ActiveRecord::Base
+ end
+ RUBY
+
+ app_file "config/initializers/active_record.rb", <<-RUBY
+ ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
+ ActiveRecord::Migration.verbose = false
+ ActiveRecord::Schema.define(version: 1) do
+ create_table :posts do |t|
+ t.string :title
+ end
+ end
+ RUBY
+
+ add_to_config <<-RUBY
+ config.eager_load = true
+ config.cache_classes = true
+ RUBY
+
+ app "production"
+
+ assert_includes Post.instance_methods, :title
+ end
+
test "initialize an eager loaded, cache classes app" do
add_to_config <<-RUBY
config.eager_load = true