Module: ActiveRecord::WithEagerGroup
- Defined in:
- lib/active_record/with_eager_group.rb
Instance Method Summary collapse
- #eager_group(*args) ⇒ Object
- #eager_group!(*args) ⇒ Object
- #eager_group_values ⇒ Object
- #eager_group_values=(values) ⇒ Object
- #exec_queries ⇒ Object
Instance Method Details
#eager_group(*args) ⇒ Object
11 12 13 14 15 |
# File 'lib/active_record/with_eager_group.rb', line 11 def eager_group(*args) check_if_method_has_arguments!(__callee__, args) spawn.eager_group!(*args) end |
#eager_group!(*args) ⇒ Object
17 18 19 20 |
# File 'lib/active_record/with_eager_group.rb', line 17 def eager_group!(*args) self.eager_group_values |= args self end |
#eager_group_values ⇒ Object
22 23 24 |
# File 'lib/active_record/with_eager_group.rb', line 22 def eager_group_values @values[:eager_group] || [] end |
#eager_group_values=(values) ⇒ Object
26 27 28 29 30 |
# File 'lib/active_record/with_eager_group.rb', line 26 def eager_group_values=(values) raise ImmutableRelation if @loaded @values[:eager_group] = values end |
#exec_queries ⇒ Object
5 6 7 8 9 |
# File 'lib/active_record/with_eager_group.rb', line 5 def exec_queries records = super EagerGroup::Preloader.new(klass, records, eager_group_values).run if eager_group_values.present? records end |