aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-03-04 16:47:43 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-03-04 17:14:15 +0900
commit465357aecfcfd5ae0b1f95b8a848e38ac868999d (patch)
tree9b3fe0c4d171a19bdaf47bf26903c24badb95b26 /activerecord/lib/active_record
parentfd3c6eadbbc1fbd4782138a28a87cb96df3ca450 (diff)
downloadrails-465357aecfcfd5ae0b1f95b8a848e38ac868999d.tar.gz
rails-465357aecfcfd5ae0b1f95b8a848e38ac868999d.tar.bz2
rails-465357aecfcfd5ae0b1f95b8a848e38ac868999d.zip
Don't share `options` with a reference type column
Sharing `options` causes some unexpected behavior. If `limit: 2` is specified, this means that 2 bytes integer for a reference id column and 2 chars string for a reference type column. Another example, if `unsigned: true` is specified, this means that unsigned integer for a reference id column, but a invalid option for a reference type column. So `options` should not be shared with a reference type column.
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb10
1 files changed, 3 insertions, 7 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
index 5eb7787226..4682afc188 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
@@ -116,16 +116,12 @@ module ActiveRecord
private
- def as_options(value, default = {})
- if value.is_a?(Hash)
- value
- else
- default
- end
+ def as_options(value)
+ value.is_a?(Hash) ? value : {}
end
def polymorphic_options
- as_options(polymorphic, options)
+ as_options(polymorphic)
end
def index_options