Class: Sequel::Plugins::ManyThroughMany::ManyThroughManyAssociationReflection
- Inherits:
-
Model::Associations::ManyToManyAssociationReflection
- Object
- Hash
- Model::Associations::AssociationReflection
- Model::Associations::ManyToManyAssociationReflection
- Sequel::Plugins::ManyThroughMany::ManyThroughManyAssociationReflection
- Defined in:
- lib/sequel/plugins/many_through_many.rb
Overview
The AssociationReflection subclass for many_through_many associations.
Constant Summary
Constants included from Inflections
Inflections::CAMELIZE_CONVERT_REGEXP, Inflections::CAMELIZE_MODULE_REGEXP, Inflections::DASH, Inflections::DEMODULIZE_CONVERT_REGEXP, Inflections::EMPTY_STRING, Inflections::SLASH, Inflections::UNDERSCORE, Inflections::UNDERSCORE_CONVERT_REGEXP1, Inflections::UNDERSCORE_CONVERT_REGEXP2, Inflections::UNDERSCORE_CONVERT_REPLACE, Inflections::UNDERSCORE_MODULE_REGEXP, Inflections::VALID_CONSTANT_NAME_REGEXP
Instance Method Summary collapse
-
#associated_key_table ⇒ Object
The table containing the column to use for the associated key when eagerly loading.
-
#default_associated_key_alias ⇒ Object
The default associated key alias(es) to use when eager loading associations via eager.
-
#edges ⇒ Object
The list of joins to use when eager graphing.
-
#reciprocal ⇒ Object
Many through many associations don’t have a reciprocal.
-
#reverse_edges ⇒ Object
The list of joins to use when lazy loading or eager loading.
Methods inherited from Model::Associations::ManyToManyAssociationReflection
#associated_key_alias, #associated_key_column, #associated_object_keys, #can_have_associated_objects?, #default_join_table, #default_left_key, #default_right_key, #eager_loader_key, #eager_loading_use_associated_key?, #need_associated_primary_key?, #right_primary_key, #right_primary_keys, #select
Methods inherited from Model::Associations::AssociationReflection
#_add_method, #_dataset_method, #_remove_all_method, #_remove_method, #_setter_method, #add_method, #associated_class, #association_method, #can_have_associated_objects?, #dataset_helper_method, #dataset_method, #dataset_need_primary_key?, #eager_graph_lazy_dataset?, #eager_loading_use_associated_key?, #need_associated_primary_key?, #reciprocal_array?, #remove_all_method, #remove_before_destroy?, #remove_method, #remove_should_check_existing?, #returns_array?, #select, #set_reciprocal_to_self?, #setter_method
Methods included from Inflections
clear, irregular, plural, singular, uncountable
Methods inherited from Hash
#&, #case, #sql_expr, #sql_negate, #sql_or, #|, #~
Instance Method Details
#associated_key_table ⇒ Object
The table containing the column to use for the associated key when eagerly loading
51 52 53 |
# File 'lib/sequel/plugins/many_through_many.rb', line 51 def associated_key_table self[:associated_key_table] = self[:final_reverse_edge][:alias] end |
#default_associated_key_alias ⇒ Object
The default associated key alias(es) to use when eager loading associations via eager.
57 58 59 |
# File 'lib/sequel/plugins/many_through_many.rb', line 57 def default_associated_key_alias self[:uses_left_composite_keys] ? (0...self[:through].first[:left].length).map{|i| :"x_foreign_key_#{i}_x"} : :x_foreign_key_x end |
#edges ⇒ Object
The list of joins to use when eager graphing
62 63 64 |
# File 'lib/sequel/plugins/many_through_many.rb', line 62 def edges self[:edges] || calculate_edges || self[:edges] end |
#reciprocal ⇒ Object
Many through many associations don’t have a reciprocal
67 68 69 |
# File 'lib/sequel/plugins/many_through_many.rb', line 67 def reciprocal nil end |
#reverse_edges ⇒ Object
The list of joins to use when lazy loading or eager loading
72 73 74 |
# File 'lib/sequel/plugins/many_through_many.rb', line 72 def reverse_edges self[:reverse_edges] || calculate_edges || self[:reverse_edges] end |