Methods
Public Instance
- apply_eager_graph_limit_strategy
- associated_object_keys
- can_have_associated_objects?
- cloneable?
- default_key
- finalize_settings
- handle_silent_modification_failure?
- predicate_key
- primary_key
- qualified_primary_key
- reciprocal_array?
- remove_before_destroy?
- remove_should_check_existing?
- set_reciprocal_to_self?
Constants
| FINALIZE_SETTINGS | = | superclass::FINALIZE_SETTINGS.merge( :qualified_primary_key=>:qualified_primary_key ).freeze |
Public Instance Aliases
| qualified_key | -> | predicate_key |
Public Instance methods
Support a lateral_subquery and correlated_subquery limit strategy when using eager_graph.
# File lib/sequel/model/associations.rb 1094 def apply_eager_graph_limit_strategy(strategy, ds) 1095 case strategy 1096 when :correlated_subquery 1097 apply_correlated_subquery_limit_strategy(ds) 1098 else 1099 super 1100 end 1101 end
The keys in the associated model’s table related to this association
# File lib/sequel/model/associations.rb 1104 def associated_object_keys 1105 self[:keys] 1106 end
one_to_many associations can only have associated objects if none of the :keys options have a nil value.
# File lib/sequel/model/associations.rb 1110 def can_have_associated_objects?(obj) 1111 !self[:primary_keys].any?{|k| obj.get_column_value(k).nil?} 1112 end
one_to_many and one_to_one associations can be clones
# File lib/sequel/model/associations.rb 1115 def cloneable?(ref) 1116 ref[:type] == :one_to_many || ref[:type] == :one_to_one 1117 end
Default foreign key name symbol for key in associated table that points to current table’s primary key.
# File lib/sequel/model/associations.rb 1121 def default_key 1122 :"#{underscore(demodulize(self[:model].name))}_id" 1123 end
# File lib/sequel/model/associations.rb 1128 def finalize_settings 1129 FINALIZE_SETTINGS 1130 end
Handle silent failure of add/remove methods if raise_on_save_failure is false.
# File lib/sequel/model/associations.rb 1133 def handle_silent_modification_failure? 1134 self[:raise_on_save_failure] == false 1135 end
The hash key to use for the eager loading predicate (left side of IN (1, 2, 3))
# File lib/sequel/model/associations.rb 1138 def predicate_key 1139 cached_fetch(:predicate_key){qualify_assoc(self[:key])} 1140 end
The column in the current table that the key in the associated table references.
# File lib/sequel/model/associations.rb 1144 def primary_key 1145 self[:primary_key] 1146 end
primary_key qualified by the current table
# File lib/sequel/model/associations.rb 1149 def qualified_primary_key 1150 cached_fetch(:qualified_primary_key){qualify_cur(primary_key)} 1151 end
Whether the reciprocal of this association returns an array of objects instead of a single object, false for a one_to_many association.
# File lib/sequel/model/associations.rb 1155 def reciprocal_array? 1156 false 1157 end
Destroying one_to_many associated objects automatically deletes the foreign key.
# File lib/sequel/model/associations.rb 1160 def remove_before_destroy? 1161 false 1162 end
The one_to_many association needs to check that an object to be removed already is associated.
# File lib/sequel/model/associations.rb 1165 def remove_should_check_existing? 1166 true 1167 end
One to many associations set the reciprocal to self when loading associated records.
# File lib/sequel/model/associations.rb 1170 def set_reciprocal_to_self? 1171 true 1172 end