Module: BootstrapPager::ActiveRecordRelationMethods

Defined in:
lib/bootstrap_pager/models/active_record_relation_methods.rb

Instance Method Summary collapse

Instance Method Details

#count(column_name = nil, options = {}) ⇒ Object

:nodoc:


6
7
8
# File 'lib/bootstrap_pager/models/active_record_relation_methods.rb', line 6

def count(column_name = nil, options = {}) #:nodoc:
  limit_value ? length : super(column_name, options)
end

#total_count(column_name = nil, options = {}) ⇒ Object

:nodoc:


11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/bootstrap_pager/models/active_record_relation_methods.rb', line 11

def total_count(column_name = nil, options = {}) #:nodoc:
  # #count overrides the #select which could include generated columns referenced in #order, so skip #order here, where it's irrelevant to the result anyway
  @total_count ||= begin
    c = except(:offset, :limit, :order)

    # Remove includes only if they are irrelevant
    c = c.except(:includes) unless references_eager_loaded_tables?

    # .group returns an OrderedHash that responds to #count
    c = c.count(column_name)
    if c.is_a?(Hash) || c.is_a?(ActiveSupport::OrderedHash)
      c.count
    else
      c.respond_to?(:count) ? c.count(column_name) : c
    end
  end
end