diff options
author | Santiago Pastorino <santiago@wyeworks.com> | 2011-03-18 13:35:57 -0300 |
---|---|---|
committer | Santiago Pastorino <santiago@wyeworks.com> | 2011-03-22 19:36:16 -0300 |
commit | da6c7bd4b411105e7556ff5015e3c9f6ab1d26fe (patch) | |
tree | 8697d8d2a51c85bed762ba901c1a55c2f8f0b8c1 | |
parent | e06c44800284696868a1e6a273abefec3047312f (diff) | |
download | rails-da6c7bd4b411105e7556ff5015e3c9f6ab1d26fe.tar.gz rails-da6c7bd4b411105e7556ff5015e3c9f6ab1d26fe.tar.bz2 rails-da6c7bd4b411105e7556ff5015e3c9f6ab1d26fe.zip |
Do not in place modify what table_name returns
-rw-r--r-- | activemodel/lib/active_model/attribute_methods.rb | 2 | ||||
-rw-r--r-- | activemodel/test/cases/attribute_methods_test.rb | 11 | ||||
-rw-r--r-- | activerecord/lib/active_record/base.rb | 2 |
3 files changed, 2 insertions, 13 deletions
diff --git a/activemodel/lib/active_model/attribute_methods.rb b/activemodel/lib/active_model/attribute_methods.rb index 73468afe55..f6648ea43e 100644 --- a/activemodel/lib/active_model/attribute_methods.rb +++ b/activemodel/lib/active_model/attribute_methods.rb @@ -107,7 +107,7 @@ module ActiveModel sing.send :define_method, name, &block else value = value.to_s if value - sing.send(:define_method, name) { value && value.dup } + sing.send(:define_method, name) { value } end end diff --git a/activemodel/test/cases/attribute_methods_test.rb b/activemodel/test/cases/attribute_methods_test.rb index e814666d99..022c6716bd 100644 --- a/activemodel/test/cases/attribute_methods_test.rb +++ b/activemodel/test/cases/attribute_methods_test.rb @@ -9,10 +9,6 @@ class ModelWithAttributes define_method(:bar) do 'original bar' end - - define_method(:zomg) do - 'original zomg' - end end def attributes @@ -102,13 +98,6 @@ class AttributeMethodsTest < ActiveModel::TestCase assert_equal "value of foo bar", ModelWithAttributesWithSpaces.new.send(:'foo bar') end - def test_defined_methods_always_return_duped_string - ModelWithAttributes.define_attr_method(:zomg, 'lol') - assert_equal 'lol', ModelWithAttributes.zomg - ModelWithAttributes.zomg << 'bbq' - assert_equal 'lol', ModelWithAttributes.zomg - end - test '#define_attr_method generates attribute method' do ModelWithAttributes.define_attr_method(:bar, 'bar') diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 7f506faeee..b778b0c0f0 100644 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -995,7 +995,7 @@ module ActiveRecord #:nodoc: if parent < ActiveRecord::Base && !parent.abstract_class? contained = parent.table_name contained = contained.singularize if parent.pluralize_table_names - contained << '_' + contained += '_' end "#{full_table_name_prefix}#{contained}#{undecorated_table_name(name)}#{table_name_suffix}" else |