Class Sequel::Plugins::ManyThroughMany::ManyThroughManyAssociationReflection
In: lib/sequel/plugins/many_through_many.rb
Parent: Sequel::Model::Associations::ManyToManyAssociationReflection

The AssociationReflection subclass for many_through_many associations.

Methods

Public Instance methods

The table containing the column to use for the associated key when eagerly loading

[Source]

    # File lib/sequel/plugins/many_through_many.rb, line 51
51:         def associated_key_table
52:           self[:associated_key_table] = self[:final_reverse_edge][:alias]
53:         end

The default associated key alias(es) to use when eager loading associations via eager.

[Source]

    # File lib/sequel/plugins/many_through_many.rb, line 57
57:         def default_associated_key_alias
58:           self[:uses_left_composite_keys] ? (0...self[:through].first[:left].length).map{|i| "x_foreign_key_#{i}_x""x_foreign_key_#{i}_x"} : :x_foreign_key_x
59:         end

The hash key to use for the eager loading predicate (left side of IN (1, 2, 3))

[Source]

    # File lib/sequel/plugins/many_through_many.rb, line 62
62:         def eager_loading_predicate_key
63:           self[:eager_loading_predicate_key] ||= begin
64:             calculate_edges
65:             e = self[:edges].first
66:             f = self[:final_reverse_edge]
67:             qualify(f[:alias], e[:right])
68:           end
69:         end

The list of joins to use when eager graphing

[Source]

    # File lib/sequel/plugins/many_through_many.rb, line 72
72:         def edges
73:           self[:edges] || calculate_edges || self[:edges]
74:         end

Many through many associations don‘t have a reciprocal

[Source]

    # File lib/sequel/plugins/many_through_many.rb, line 77
77:         def reciprocal
78:           nil
79:         end

The list of joins to use when lazy loading or eager loading

[Source]

    # File lib/sequel/plugins/many_through_many.rb, line 82
82:         def reverse_edges
83:           self[:reverse_edges] || calculate_edges || self[:reverse_edges]
84:         end

[Validate]