diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2018-09-25 01:45:31 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-25 01:45:31 +0900 |
commit | 06274428e534f8e12fc7d6904a89678b23c5b404 (patch) | |
tree | 20e710493a17f143e8a91fff9889fd4b62904be4 /railties | |
parent | d03cc170c1bdad15245be7f2681a265fd2bd0d5d (diff) | |
parent | 3b954786e7876ad63c917ed1dae310624c8ccf33 (diff) | |
download | rails-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.rb | 47 |
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 |