# File lib/mongoid/association/options.rb, line 78 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 14 def as @options[:as] end
Whether the association is autobuilding.
@return [ true, false ]
@since 7.0
# File lib/mongoid/association/options.rb, line 50 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 88 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 114 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 98 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 59 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 23 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 130 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 41 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 68 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 32 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 107 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 123 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 144 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 137 def type; end
Private Instance Methods
# File lib/mongoid/association/options.rb, line 150 def touchable? !!@options[:touch] end