app/models/effective/effective_datatable/options.rb in effective_datatables-2.1.15 vs app/models/effective/effective_datatable/options.rb in effective_datatables-2.1.16
- old
+ new
@@ -6,10 +6,14 @@
def initialize_options
@table_columns = initialize_column_options(@table_columns)
end
+ def quote_sql(name)
+ collection_class.connection.quote_column_name(name) rescue name
+ end
+
protected
def initialize_column_options(cols)
sql_table = (collection.table rescue nil)
@@ -45,11 +49,11 @@
cols[name][:array_column] ||= false
cols[name][:array_index] = index # The index of this column in the collection, regardless of hidden table_columns
cols[name][:name] ||= name
cols[name][:label] ||= name.titleize
- cols[name][:column] ||= (sql_table && sql_column) ? "\"#{sql_table.name}\".\"#{sql_column.name}\"" : name
+ cols[name][:column] ||= (sql_table && sql_column) ? "#{quote_sql(sql_table.name)}.#{quote_sql(sql_column.name)}" : name
cols[name][:width] ||= nil
cols[name][:sortable] = true if cols[name][:sortable].nil?
cols[name][:visible] = true if cols[name][:visible].nil?
# Type
@@ -87,10 +91,10 @@
end
# EffectiveRoles, if you do table_column :roles, everything just works
if name == 'roles' && defined?(EffectiveRoles) && collection.respond_to?(:with_role)
cols[name][:sortable] = true
- cols[name][:column] = sql_table.present? ? "\"#{sql_table.name}\".\"roles_mask\"" : name
+ cols[name][:column] = sql_table.present? ? "#{quote_sql(sql_table.name)}.#{quote_sql('roles_mask')}" : name
cols[name][:type] = :effective_roles
end
if sql_table.present? && sql_column.blank? # This is a SELECT AS column
cols[name][:sql_as_column] = true