diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2008-05-09 10:51:57 +0100 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2008-05-09 10:51:57 +0100 |
commit | c99e54f4ec67cefe11787aa9ab9d8bd006e6ca71 (patch) | |
tree | c7548000db7be1adb3b12ec5e6d3877d9262f979 /activerecord/lib | |
parent | e6afd8b2736364322b673bbdcca3e9b38b6d3da0 (diff) | |
parent | dc4eec1129520ce9863c9373d7cb79d8636ab7ca (diff) | |
download | rails-c99e54f4ec67cefe11787aa9ab9d8bd006e6ca71.tar.gz rails-c99e54f4ec67cefe11787aa9ab9d8bd006e6ca71.tar.bz2 rails-c99e54f4ec67cefe11787aa9ab9d8bd006e6ca71.zip |
Merge commit 'mainstream/master'
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/associations/association_proxy.rb | 4 | ||||
-rw-r--r-- | activerecord/lib/active_record/attribute_methods.rb | 6 | ||||
-rwxr-xr-x | activerecord/lib/active_record/base.rb | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/associations/association_proxy.rb b/activerecord/lib/active_record/associations/association_proxy.rb index c415ad2df3..68503a3c40 100644 --- a/activerecord/lib/active_record/associations/association_proxy.rb +++ b/activerecord/lib/active_record/associations/association_proxy.rb @@ -118,7 +118,7 @@ module ActiveRecord end def inspect - reload unless loaded? + load_target @target.inspect end @@ -167,7 +167,7 @@ module ActiveRecord def with_scope(*args, &block) @reflection.klass.send :with_scope, *args, &block end - + private def method_missing(method, *args) if load_target diff --git a/activerecord/lib/active_record/attribute_methods.rb b/activerecord/lib/active_record/attribute_methods.rb index 46ecfc1969..2db27226f2 100644 --- a/activerecord/lib/active_record/attribute_methods.rb +++ b/activerecord/lib/active_record/attribute_methods.rb @@ -179,10 +179,10 @@ module ActiveRecord def define_write_method_for_time_zone_conversion(attr_name) method_body = <<-EOV def #{attr_name}=(time) - if time - time = time.to_time rescue time unless time.acts_like?(:time) - time = time.in_time_zone if time.acts_like?(:time) + unless time.acts_like?(:time) + time = time.is_a?(String) ? Time.zone.parse(time) : time.to_time rescue time end + time = time.in_time_zone rescue nil if time write_attribute(:#{attr_name}, time) end EOV diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 60fa5890f0..74299bd572 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -2588,7 +2588,7 @@ module ActiveRecord #:nodoc: end def instantiate_time_object(name, values) - if Time.zone && self.class.time_zone_aware_attributes && !self.class.skip_time_zone_conversion_for_attributes.include?(name.to_sym) + if self.class.time_zone_aware_attributes && !self.class.skip_time_zone_conversion_for_attributes.include?(name.to_sym) Time.zone.local(*values) else Time.time_with_datetime_fallback(@@default_timezone, *values) |