Class: ActiveRecord::Relation
- Inherits:
-
Object
- Object
- ActiveRecord::Relation
- Defined in:
- lib/directive_record/gem_ext/active_record/relation.rb,
lib/directive_record/gem_ext/active_record/relation/count.rb
Instance Method Summary collapse
- #count(column_name = nil, options = {}) ⇒ Object
- #original_count ⇒ Object
- #qry(*args) ⇒ Object
- #qry_options(*args) ⇒ Object
- #qry_value(*args) ⇒ Object
- #qry_values(*args) ⇒ Object
- #to_qry(*args) ⇒ Object
Instance Method Details
#count(column_name = nil, options = {}) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/directive_record/gem_ext/active_record/relation/count.rb', line 6 def count(column_name = nil, = {}) if !loaded? && (column_name == :all) && ( == {}) associations = klass.reflections.keys.collect(&:to_s) contains_possible_paths = .any? do |key, value| if value.is_a?(Array) value.any? do |val| val.to_s.scan(/(?:^|[^\.])([a-z_]+)\.[a-z_]+/).flatten.any? do |string| associations.include?(string) end end end end if contains_possible_paths return qry("COUNT(DISTINCT id)")[0][0] end end original_count column_name, end |
#original_count ⇒ Object
4 |
# File 'lib/directive_record/gem_ext/active_record/relation/count.rb', line 4 alias :original_count :count |
#qry(*args) ⇒ Object
12 13 14 |
# File 'lib/directive_record/gem_ext/active_record/relation.rb', line 12 def qry(*args) klass.qry (*args) end |
#qry_options(*args) ⇒ Object
4 5 6 |
# File 'lib/directive_record/gem_ext/active_record/relation.rb', line 4 def (*args) DirectiveRecord::Relation.new(self).(*args) end |
#qry_value(*args) ⇒ Object
16 17 18 |
# File 'lib/directive_record/gem_ext/active_record/relation.rb', line 16 def qry_value(*args) klass.qry_value (*args) end |
#qry_values(*args) ⇒ Object
20 21 22 |
# File 'lib/directive_record/gem_ext/active_record/relation.rb', line 20 def qry_values(*args) klass.qry_values (*args) end |
#to_qry(*args) ⇒ Object
8 9 10 |
# File 'lib/directive_record/gem_ext/active_record/relation.rb', line 8 def to_qry(*args) klass.to_qry (*args) end |