Module: ActiveScaffold::OuterJoins
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/active_scaffold/extensions/left_outer_joins.rb
Instance Method Summary collapse
- #build_arel ⇒ Object
- #left_outer_joins(*args) ⇒ Object (also: #left_joins)
- #left_outer_joins!(*args) ⇒ Object (also: #left_joins!)
- #left_outer_joins_values ⇒ Object
- #left_outer_joins_values=(values) ⇒ Object
- #outer_joins(*args) ⇒ Object
- #outer_joins!(*args) ⇒ Object
Instance Method Details
#build_arel ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/active_scaffold/extensions/left_outer_joins.rb', line 39 def build_arel if left_outer_joins_values.empty? super else relation = except(:left_outer_joins) join_dependency = ActiveRecord::Associations::JoinDependency.new(@klass, left_outer_joins_values, []) join_dependency.join_associations.each do |association| relation = association.join_relation(relation) end relation.build_arel end end |
#left_outer_joins(*args) ⇒ Object Also known as: left_joins
15 16 17 18 |
# File 'lib/active_scaffold/extensions/left_outer_joins.rb', line 15 def left_outer_joins(*args) check_if_method_has_arguments!('left_outer_joins', args) spawn.left_outer_joins!(*args.compact.flatten) end |
#left_outer_joins!(*args) ⇒ Object Also known as: left_joins!
26 27 28 29 30 |
# File 'lib/active_scaffold/extensions/left_outer_joins.rb', line 26 def left_outer_joins!(*args) self.joins_values += [''] # HACK: for using left_outer_joins in update_all/delete_all self.left_outer_joins_values += args self end |
#left_outer_joins_values ⇒ Object
6 7 8 |
# File 'lib/active_scaffold/extensions/left_outer_joins.rb', line 6 def left_outer_joins_values @values[:left_outer_joins] || [] end |
#left_outer_joins_values=(values) ⇒ Object
10 11 12 13 |
# File 'lib/active_scaffold/extensions/left_outer_joins.rb', line 10 def left_outer_joins_values=(values) raise ImmutableRelation if @loaded @values[:left_outer_joins] = values end |
#outer_joins(*args) ⇒ Object
21 22 23 24 |
# File 'lib/active_scaffold/extensions/left_outer_joins.rb', line 21 def outer_joins(*args) ActiveSupport::Deprecation.warn 'use left_outer_joins or left_joins which is added to Rails 5.0.0' left_outer_joins(*args) end |
#outer_joins!(*args) ⇒ Object
33 34 35 36 |
# File 'lib/active_scaffold/extensions/left_outer_joins.rb', line 33 def outer_joins!(*args) ActiveSupport::Deprecation.warn 'use left_outer_joins! or left_joins! which is added to Rails 5.0.0' left_outer_joins!(*args) end |