aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorAltech <takeno.sh@gmail.com>2017-10-19 16:30:31 +0900
committerAltech <takeno.sh@gmail.com>2017-10-20 19:42:44 +0900
commite9f82e76e83497db094fe63104f548453fbe512e (patch)
treeffccdf95e5aa1069185cc1d810035862847b0b99 /activerecord/test
parentb7bf70982395ee5fd2e89064f87f268eeddb9d6d (diff)
downloadrails-e9f82e76e83497db094fe63104f548453fbe512e.tar.gz
rails-e9f82e76e83497db094fe63104f548453fbe512e.tar.bz2
rails-e9f82e76e83497db094fe63104f548453fbe512e.zip
Convert ignored_columns to a list of string
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/base_test.rb12
-rw-r--r--activerecord/test/models/developer.rb8
2 files changed, 20 insertions, 0 deletions
diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb
index 79a1982b25..f0ef522515 100644
--- a/activerecord/test/cases/base_test.rb
+++ b/activerecord/test/cases/base_test.rb
@@ -1445,6 +1445,7 @@ class BasicsTest < ActiveRecord::TestCase
assert_includes cache_columns.keys, "first_name"
assert_not_includes Developer.columns_hash.keys, "first_name"
assert_not_includes SubDeveloper.columns_hash.keys, "first_name"
+ assert_not_includes SymbolIgnoredDeveloper.columns_hash.keys, "first_name"
end
test "ignored columns have no attribute methods" do
@@ -1454,6 +1455,9 @@ class BasicsTest < ActiveRecord::TestCase
refute SubDeveloper.new.respond_to?(:first_name)
refute SubDeveloper.new.respond_to?(:first_name=)
refute SubDeveloper.new.respond_to?(:first_name?)
+ refute SymbolIgnoredDeveloper.new.respond_to?(:first_name)
+ refute SymbolIgnoredDeveloper.new.respond_to?(:first_name=)
+ refute SymbolIgnoredDeveloper.new.respond_to?(:first_name?)
end
test "ignored columns don't prevent explicit declaration of attribute methods" do
@@ -1463,5 +1467,13 @@ class BasicsTest < ActiveRecord::TestCase
assert SubDeveloper.new.respond_to?(:last_name)
assert SubDeveloper.new.respond_to?(:last_name=)
assert SubDeveloper.new.respond_to?(:last_name?)
+ assert SymbolIgnoredDeveloper.new.respond_to?(:last_name)
+ assert SymbolIgnoredDeveloper.new.respond_to?(:last_name=)
+ assert SymbolIgnoredDeveloper.new.respond_to?(:last_name?)
+ end
+
+ test "ignored columns are stored as an array of string" do
+ assert_equal(%w(first_name last_name), Developer.ignored_columns)
+ assert_equal(%w(first_name last_name), SymbolIgnoredDeveloper.ignored_columns)
end
end
diff --git a/activerecord/test/models/developer.rb b/activerecord/test/models/developer.rb
index 2a86fe9eba..8881c69368 100644
--- a/activerecord/test/models/developer.rb
+++ b/activerecord/test/models/developer.rb
@@ -90,6 +90,14 @@ end
class SubDeveloper < Developer
end
+class SymbolIgnoredDeveloper < ActiveRecord::Base
+ self.table_name = "developers"
+ self.ignored_columns = [:first_name, :last_name]
+
+ attr_accessor :last_name
+ define_attribute_method "last_name"
+end
+
class AuditLog < ActiveRecord::Base
belongs_to :developer, validate: true
belongs_to :unvalidated_developer, class_name: "Developer"