diff options
author | Jon Moss <me@jonathanmoss.me> | 2017-02-05 16:40:03 -0500 |
---|---|---|
committer | Gabriel Sobrinho <gabriel.sobrinho@gmail.com> | 2017-11-13 17:41:28 -0200 |
commit | 6acde9578fa55ceab8ef6520bbd5aab2a860d051 (patch) | |
tree | 2f1cd46eb75b072937307a667c65812745af97cf /activerecord/test/cases | |
parent | 5cd6f1792e9710979ce53943c28b2b38dae34e98 (diff) | |
download | rails-6acde9578fa55ceab8ef6520bbd5aab2a860d051.tar.gz rails-6acde9578fa55ceab8ef6520bbd5aab2a860d051.tar.bz2 rails-6acde9578fa55ceab8ef6520bbd5aab2a860d051.zip |
Do not use `Arel.star` when `ignored_columns`
If there are any ignored columns, we will now list out all columns we
want to be returned from the database.
Includes a regression test.
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/base_test.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index f0ef522515..0ae88ee6a0 100644 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -1476,4 +1476,25 @@ class BasicsTest < ActiveRecord::TestCase assert_equal(%w(first_name last_name), Developer.ignored_columns) assert_equal(%w(first_name last_name), SymbolIgnoredDeveloper.ignored_columns) end + + test "when #reload called, ignored columns' attribute methods are not defined" do + developer = Developer.create!(name: "Developer") + refute developer.respond_to?(:first_name) + refute developer.respond_to?(:first_name=) + + developer.reload + + refute developer.respond_to?(:first_name) + refute developer.respond_to?(:first_name=) + end + + test "ignored columns not included in SELECT" do + query = Developer.all.to_sql + + # ignored column + refute query.include?("first_name") + + # regular column + assert query.include?("name") + end end |