diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2007-01-28 07:58:02 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2007-01-28 07:58:02 +0000 |
commit | c6b15dde1be9f93b77e9e33ee981124a1a49c6f8 (patch) | |
tree | 1ebae04357fcee271149551b7e17d69dd1a6666e /activerecord | |
parent | 17fee001a9d40aaed4c62f1e159242ca47182c2b (diff) | |
download | rails-c6b15dde1be9f93b77e9e33ee981124a1a49c6f8.tar.gz rails-c6b15dde1be9f93b77e9e33ee981124a1a49c6f8.tar.bz2 rails-c6b15dde1be9f93b77e9e33ee981124a1a49c6f8.zip |
Use Date#to_s(:db) for quoted dates. Closes #7411.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6061 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord')
3 files changed, 12 insertions, 7 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG index 7eff9e9c93..cda2262ed4 100644 --- a/activerecord/CHANGELOG +++ b/activerecord/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Use Date#to_s(:db) for quoted dates. #7411 [Michael Schoen] + * Don't create instance writer methods for class attributes. Closes #7401 [Rick] * Docs: validations examples. #7343 [zackchandler] diff --git a/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb b/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb index ce9495a5d2..aa405eb47c 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb @@ -25,9 +25,7 @@ module ActiveRecord # BigDecimals need to be output in a non-normalized form and quoted. when BigDecimal then value.to_s('F') else - if value.acts_like?(:date) - "'#{value.to_s}'" - elsif value.acts_like?(:time) + if value.acts_like?(:date) || value.acts_like?(:time) "'#{quoted_date(value)}'" else "'#{quote_string(value.to_yaml)}'" @@ -50,13 +48,13 @@ module ActiveRecord def quoted_true "'t'" end - + def quoted_false "'f'" end - + def quoted_date(value) - value.strftime("%Y-%m-%d %H:%M:%S") + value.to_s(:db) end end end diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index eb9d0e94df..2f4b2b9a3a 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -125,8 +125,13 @@ module ActiveRecord %("#{name}") end + # Include microseconds if the value is a Time responding to usec. def quoted_date(value) - value.strftime("%Y-%m-%d %H:%M:%S.#{sprintf("%06d", value.usec)}") + if value.acts_like?(:time) && value.respond_to?(:usec) + "#{super}.#{sprintf("%06d", value.usec)}" + else + super + end end |