module ActiveRecord::Deselect
Constants
- VERSION
Public Instance Methods
deselect(*deselect_columns)
click to toggle source
# File lib/active_record/deselect.rb, line 5 def deselect(*deselect_columns) scope = current_scope || relation select_columns = filter_columns(scope, deselect_columns) scope.except(:select).select(select_columns) end
deselect!(*deselect_columns)
click to toggle source
# File lib/active_record/deselect.rb, line 11 def deselect!(*deselect_columns) scope = current_scope || relation select_columns = filter_columns(scope, deselect_columns) scope.select_values = select_columns scope end
Private Instance Methods
filter_columns(scope, deselect_columns)
click to toggle source
# File lib/active_record/deselect.rb, line 20 def filter_columns(scope, deselect_columns) current_columns = scope.select_values.presence || column_names.map(&:to_sym) deselect_columns = deselect_columns.map{ |column| column = column.to_s column.include?('.') ? [column] : [column, "#{table_name}.#{column}"] }.flatten.map{ |column| [column.to_s, column.to_sym] }.flatten current_columns - deselect_columns end