# File lib/mongoid/association/options.rb, line 76 def primary_key @primary_key ||= @options[:primary_key] ? @options[:primary_key].to_s : Relatable::PRIMARY_KEY_DEFAULT end
module Mongoid::Association::Options
Public Instance Methods
Returns the name of the parent to a polymorphic child.
@return [ String, Symbol ] The name.
@since 7.0
# File lib/mongoid/association/options.rb, line 12 def as @options[:as] end
Whether the association is autobuilding.
@return [ true, false ]
@since 7.0
# File lib/mongoid/association/options.rb, line 48 def autobuilding? !!@options[:autobuild] end
Options to save any loaded members and destroy members that are marked for destruction when the parent object is saved.
@return [ true, false ] The autosave option.
@since 7.0
# File lib/mongoid/association/options.rb, line 86 def autosave !!@options[:autosave] end
Whether the association has callbacks cascaded down from the parent.
@return [ true, false ] Whether callbacks are cascaded.
@since 7.0
# File lib/mongoid/association/options.rb, line 112 def cascading_callbacks? !!@options[:cascade_callbacks] end
Whether the association is counter-cached.
@return [ true, false ]
@since 7.0
# File lib/mongoid/association/options.rb, line 96 def counter_cached? !!@options[:counter_cache] end
Is the association cyclic.
@return [ true, false ] Whether the association is cyclic.
@since 7.0
# File lib/mongoid/association/options.rb, line 57 def cyclic? !!@options[:cyclic] end
Specify what happens to the associated object when the owner is destroyed.
@return [ String ] The dependent option.
@since 7.0
# File lib/mongoid/association/options.rb, line 21 def dependent @options[:dependent] end
Whether the association has forced nil inverse (So no foreign keys are saved).
@return [ false ] Default is false.
@since 7.0
# File lib/mongoid/association/options.rb, line 128 def forced_nil_inverse?; false; end
Whether to index the primary or foreign key field.
@return [ true, false ]
@since 7.0
# File lib/mongoid/association/options.rb, line 39 def indexed? @indexed ||= !!@options[:index] end
The name the owning object uses to refer to this association.
@return [ String ] The #inverse_of option.
@since 7.0
# File lib/mongoid/association/options.rb, line 66 def inverse_of @options[:inverse_of] end
The custom sorting options on the association.
@return [ Criteria::Queryable::Key ] The custom sorting options.
@since 7.0
# File lib/mongoid/association/options.rb, line 30 def order @options[:order] end
Whether this association is polymorphic.
@return [ true, false ] Whether the association is polymorphic.
@since 7.0
# File lib/mongoid/association/options.rb, line 105 def polymorphic?; false; end
Mongoid assumes that the field used to hold the primary key of the association is id. You can override this and explicitly specify the primary key with the :primary_key option.
@return [ Symbol, String ] The primary key.
@since 7.0
The #store_as option.
@return [ nil ] Default is nil.
@since 7.0
# File lib/mongoid/association/options.rb, line 121 def store_as; end
The field for saving the associated object's type.
@return [ nil ] Default is nil.
@since 7.0
# File lib/mongoid/association/options.rb, line 142 def touch_field @touch_field ||= options[:touch] if (options[:touch].is_a?(String) || options[:touch].is_a?(Symbol)) end
The field for saving the associated object's type.
@return [ nil ] Default is nil.
@since 7.0
# File lib/mongoid/association/options.rb, line 135 def type; end
Private Instance Methods
# File lib/mongoid/association/options.rb, line 148 def touchable? !!@options[:touch] end