aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2008-05-09 10:51:57 +0100
committerPratik Naik <pratiknaik@gmail.com>2008-05-09 10:51:57 +0100
commitc99e54f4ec67cefe11787aa9ab9d8bd006e6ca71 (patch)
treec7548000db7be1adb3b12ec5e6d3877d9262f979 /activerecord/lib
parente6afd8b2736364322b673bbdcca3e9b38b6d3da0 (diff)
parentdc4eec1129520ce9863c9373d7cb79d8636ab7ca (diff)
downloadrails-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.rb4
-rw-r--r--activerecord/lib/active_record/attribute_methods.rb6
-rwxr-xr-xactiverecord/lib/active_record/base.rb2
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)