aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2014-06-13 10:52:39 -0600
committerSean Griffin <sean@thoughtbot.com>2014-06-13 10:52:39 -0600
commit6ea1481d6991aa6eb67b9fb135b778908922d675 (patch)
treedff669fd70edbff3788cae649c370c5b2ac7510c
parent1c41d3b9827e839c0fc559b95cb07e45970b5ebb (diff)
downloadrails-6ea1481d6991aa6eb67b9fb135b778908922d675.tar.gz
rails-6ea1481d6991aa6eb67b9fb135b778908922d675.tar.bz2
rails-6ea1481d6991aa6eb67b9fb135b778908922d675.zip
Ensure we always define attribute methods
-rw-r--r--activerecord/lib/active_record/core.rb1
-rw-r--r--activerecord/test/cases/serialization_test.rb8
2 files changed, 9 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/core.rb b/activerecord/lib/active_record/core.rb
index 86b4cc90ea..3e965187e6 100644
--- a/activerecord/lib/active_record/core.rb
+++ b/activerecord/lib/active_record/core.rb
@@ -259,6 +259,7 @@ module ActiveRecord
init_internals
initialize_internals_callback
+ self.class.define_attribute_methods
# +options+ argument is only needed to make protected_attributes gem easier to hook.
# Remove it when we drop support to this gem.
init_attributes(attributes, options) if attributes
diff --git a/activerecord/test/cases/serialization_test.rb b/activerecord/test/cases/serialization_test.rb
index 7dd1f10ce9..3f52e80e11 100644
--- a/activerecord/test/cases/serialization_test.rb
+++ b/activerecord/test/cases/serialization_test.rb
@@ -69,6 +69,14 @@ class SerializationTest < ActiveRecord::TestCase
ActiveRecord::Base.include_root_in_json = original_root_in_json
end
+ def test_read_attribute_for_serialization_with_format_without_method_missing
+ klazz = Class.new(ActiveRecord::Base)
+ klazz.table_name = 'books'
+
+ book = klazz.new
+ assert_nil book.read_attribute_for_serialization(:format)
+ end
+
def test_read_attribute_for_serialization_with_format_after_init
klazz = Class.new(ActiveRecord::Base)
klazz.table_name = 'books'