module ActiveRecord::MTI::QueryMethods
Public Instance Methods
build_arel()
click to toggle source
Calls superclass method
# File lib/active_record/mti/query_methods.rb, line 5 def build_arel @select_by_tableoid = [select_values.delete(:tableoid), tableoid?(klass)].compact.first @group_by_tableoid = group_values.delete(:tableoid) super.tap do |arel| if @group_by_tableoid || (@select_by_tableoid && group_values.any?) arel.group(tableoid_group(@klass)) end end end
build_select(*args)
click to toggle source
Calls superclass method
# File lib/active_record/mti/query_methods.rb, line 16 def build_select(*args) super.tap do |arel| arel.project(tableoid_project(@klass)) if (@group_by_tableoid || @select_by_tableoid) end end
Private Instance Methods
tableoid?(klass)
click to toggle source
# File lib/active_record/mti/query_methods.rb, line 24 def tableoid?(klass) !Thread.current['skip_tableoid_cast'] && klass.using_multi_table_inheritance? && klass.mti_type_column end
tableoid_group(klass)
click to toggle source
# File lib/active_record/mti/query_methods.rb, line 34 def tableoid_group(klass) klass.mti_type_column end
tableoid_project(klass)
click to toggle source
# File lib/active_record/mti/query_methods.rb, line 30 def tableoid_project(klass) klass.mti_type_column.as('tableoid') end