aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2016-10-03 05:36:12 +0900
committerRyuta Kamizono <kamipo@gmail.com>2016-10-03 05:36:12 +0900
commit30b498036fe35ff9acb698dbc7364e289161113d (patch)
tree2fcfa4146fbdbd66e62697bf7ba05c7b213002bc /activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
parenta92fa726003880f5d28367459ddaf134c44b1697 (diff)
downloadrails-30b498036fe35ff9acb698dbc7364e289161113d.tar.gz
rails-30b498036fe35ff9acb698dbc7364e289161113d.tar.bz2
rails-30b498036fe35ff9acb698dbc7364e289161113d.zip
Fix `add_index` to normalize column names and options
Currently does not work the following code. ```ruby add_index(:people, ["last_name", "first_name"], order: { last_name: :desc, first_name: :asc }) ``` Normalize column names and options to fix the issue.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
index 29520ed9c8..6146be436d 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -1171,6 +1171,7 @@ module ActiveRecord
if order = options[:order]
case order
when Hash
+ order = order.symbolize_keys
quoted_columns.each { |name, column| column << " #{order[name].upcase}" if order[name].present? }
when String
quoted_columns.each { |name, column| column << " #{order.upcase}" if order.present? }
@@ -1192,7 +1193,7 @@ module ActiveRecord
def quoted_columns_for_index(column_names, **options)
return [column_names] if column_names.is_a?(String)
- quoted_columns = Hash[column_names.map { |name| [name, quote_column_name(name).dup] }]
+ quoted_columns = Hash[column_names.map { |name| [name.to_sym, quote_column_name(name).dup] }]
add_options_for_index_columns(quoted_columns, options).values
end