diff options
author | Yves Senn <yves.senn@gmail.com> | 2014-05-26 15:22:09 +0200 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2014-05-26 15:22:09 +0200 |
commit | d075c84320fab51992a1ab7d020c62ff1bad0b4e (patch) | |
tree | f0ed59342e74f36f34a3c3b57edcbd5c938b1c34 /activerecord/lib/active_record/connection_adapters/abstract/quoting.rb | |
parent | 7a2b37fbbbe5ef7dd9693bc7d4b404ec7e461fff (diff) | |
parent | b5c4ef2c785ef634a81d7bb554e9b20f164be95b (diff) | |
download | rails-d075c84320fab51992a1ab7d020c62ff1bad0b4e.tar.gz rails-d075c84320fab51992a1ab7d020c62ff1bad0b4e.tar.bz2 rails-d075c84320fab51992a1ab7d020c62ff1bad0b4e.zip |
Merge pull request #15307 from sgrif/sg-type-cast-for-write
Add an interface for type objects to control Ruby => SQL
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract/quoting.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/quoting.rb | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb b/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb index 75501852ed..0bd53a7eb0 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb @@ -47,6 +47,15 @@ module ActiveRecord return value.id end + # FIXME: The only case we get an object other than nil or a real column + # is `SchemaStatements#add_column` with a PG array that has a non-empty default + # value. Is this really the only case? Are we missing tests for other types? + # We should have a real column object passed (or nil) here, and check for that + # instead + if column.respond_to?(:type_cast_for_database) + value = column.type_cast_for_database(value) + end + case value when String, ActiveSupport::Multibyte::Chars value = value.to_s |