Class Sequel::Model::Associations::OneToManyAssociationReflection
In: lib/sequel/model/associations.rb
Parent: AssociationReflection

Methods

Constants

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

Public Instance methods

Support a correlated subquery limit strategy when using eager_graph.

[Source]

     # File lib/sequel/model/associations.rb, line 964
964:         def apply_eager_graph_limit_strategy(strategy, ds)
965:           case strategy
966:           when :correlated_subquery
967:             apply_correlated_subquery_limit_strategy(ds)
968:           else
969:             super
970:           end
971:         end

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

[Source]

     # File lib/sequel/model/associations.rb, line 974
974:         def associated_object_keys
975:           self[:keys]
976:         end

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

[Source]

     # File lib/sequel/model/associations.rb, line 980
980:         def can_have_associated_objects?(obj)
981:           !self[:primary_keys].any?{|k| obj.get_column_value(k).nil?}
982:         end

one_to_many and one_to_one associations can be clones

[Source]

     # File lib/sequel/model/associations.rb, line 985
985:         def cloneable?(ref)
986:           ref[:type] == :one_to_many || ref[:type] == :one_to_one
987:         end

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

[Source]

     # File lib/sequel/model/associations.rb, line 991
991:         def default_key
992: 
993:           "#{underscore(demodulize(self[:model].name))}_id"
994:         end

[Source]

      # File lib/sequel/model/associations.rb, line 998
 998:         def finalize_settings
 999:           FINALIZE_SETTINGS
1000:         end

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

[Source]

      # File lib/sequel/model/associations.rb, line 1003
1003:         def handle_silent_modification_failure?
1004:           self[:raise_on_save_failure] == false
1005:         end

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

[Source]

      # File lib/sequel/model/associations.rb, line 1008
1008:         def predicate_key
1009:           cached_fetch(:predicate_key){qualify_assoc(self[:key])}
1010:         end

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

[Source]

      # File lib/sequel/model/associations.rb, line 1014
1014:         def primary_key
1015:           self[:primary_key]
1016:         end
qualified_key()

Alias for predicate_key

primary_key qualified by the current table

[Source]

      # File lib/sequel/model/associations.rb, line 1019
1019:         def qualified_primary_key
1020:           cached_fetch(:qualified_primary_key){qualify_cur(primary_key)}
1021:         end

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

[Source]

      # File lib/sequel/model/associations.rb, line 1025
1025:         def reciprocal_array?
1026:           false
1027:         end

Destroying one_to_many associated objects automatically deletes the foreign key.

[Source]

      # File lib/sequel/model/associations.rb, line 1030
1030:         def remove_before_destroy?
1031:           false
1032:         end

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

[Source]

      # File lib/sequel/model/associations.rb, line 1035
1035:         def remove_should_check_existing?
1036:           true
1037:         end

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

[Source]

      # File lib/sequel/model/associations.rb, line 1040
1040:         def set_reciprocal_to_self?
1041:           true
1042:         end

[Validate]