class Sequel::Model::Associations::OneToManyAssociationReflection

  1. lib/sequel/model/associations.rb
Superclass: AssociationReflection

Constants

FINALIZE_SETTINGS = superclass::FINALIZE_SETTINGS.merge( :qualified_primary_key=>:qualified_primary_key ).freeze  

Public Instance Aliases

qualified_key -> predicate_key

Public Instance methods

apply_eager_graph_limit_strategy(strategy, ds)

Support a lateral_subquery and correlated_subquery limit strategy when using eager_graph.

[show source]
     # 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
associated_object_keys()

The keys in the associated model’s table related to this association

[show source]
     # File lib/sequel/model/associations.rb
1104 def associated_object_keys
1105   self[:keys]
1106 end
can_have_associated_objects?(obj)

one_to_many associations can only have associated objects if none of the :keys options have a nil value.

[show source]
     # 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
cloneable?(ref)

one_to_many and one_to_one associations can be clones

[show source]
     # File lib/sequel/model/associations.rb
1115 def cloneable?(ref)
1116   ref[:type] == :one_to_many || ref[:type] == :one_to_one
1117 end
default_key()

Default foreign key name symbol for key in associated table that points to current table’s primary key.

[show source]
     # File lib/sequel/model/associations.rb
1121 def default_key
1122   :"#{underscore(demodulize(self[:model].name))}_id"
1123 end
finalize_settings()
[show source]
     # File lib/sequel/model/associations.rb
1128 def finalize_settings
1129   FINALIZE_SETTINGS
1130 end
handle_silent_modification_failure?()

Handle silent failure of add/remove methods if raise_on_save_failure is false.

[show source]
     # File lib/sequel/model/associations.rb
1133 def handle_silent_modification_failure?
1134   self[:raise_on_save_failure] == false
1135 end
predicate_key()

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

[show source]
     # File lib/sequel/model/associations.rb
1138 def predicate_key
1139   cached_fetch(:predicate_key){qualify_assoc(self[:key])}
1140 end
primary_key()

The column in the current table that the key in the associated table references.

[show source]
     # File lib/sequel/model/associations.rb
1144 def primary_key
1145   self[:primary_key]
1146 end
qualified_primary_key()

primary_key qualified by the current table

[show source]
     # File lib/sequel/model/associations.rb
1149 def qualified_primary_key
1150   cached_fetch(:qualified_primary_key){qualify_cur(primary_key)}
1151 end
reciprocal_array?()

Whether the reciprocal of this association returns an array of objects instead of a single object, false for a one_to_many association.

[show source]
     # File lib/sequel/model/associations.rb
1155 def reciprocal_array?
1156   false
1157 end
remove_before_destroy?()

Destroying one_to_many associated objects automatically deletes the foreign key.

[show source]
     # File lib/sequel/model/associations.rb
1160 def remove_before_destroy?
1161   false
1162 end
remove_should_check_existing?()

The one_to_many association needs to check that an object to be removed already is associated.

[show source]
     # File lib/sequel/model/associations.rb
1165 def remove_should_check_existing?
1166   true
1167 end
set_reciprocal_to_self?()

One to many associations set the reciprocal to self when loading associated records.

[show source]
     # File lib/sequel/model/associations.rb
1170 def set_reciprocal_to_self?
1171   true
1172 end