Class: ActiveRecord::Reflection::BelongsToReflection
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
|
|
|
Instance Chain:
|
|
| Inherits: |
ActiveRecord::Reflection::AssociationReflection
|
| Defined in: | activerecord/lib/active_record/reflection.rb |
Class Method Summary
Instance Attribute Summary
- #belongs_to? ⇒ Boolean readonly
AssociationReflection - Inherited
| #belongs_to? | Returns |
| #collection? | Returns whether or not this association reflection is for a collection association. |
| #deprecated?, #foreign_type, #has_inverse?, | |
| #has_one? | Returns |
| #has_scope?, #nested?, | |
| #parent_reflection | |
| #polymorphic?, #type, | |
| #validate? | Returns whether or not the association should be validated as part of the parent’s validation. |
MacroReflection - Inherited
| #active_record, #autosave=, | |
| #name | Returns the name of the macro. |
| #options | Returns the hash of options used for the macro. |
| #scope, #plural_name | |
AbstractReflection - Inherited
| #counter_must_be_updated_by_has_many?, | |
| #has_active_cached_counter? | Returns whether this association has a counter cache and its column values were backfilled (and so it is used internally by methods like |
| #has_cached_counter? | Returns whether this association has a counter cache. |
| #inverse_updates_counter_cache? | |
| #inverse_updates_counter_in_memory?, #strict_loading?, #through_reflection? | |
Instance Method Summary
- #association_class
-
#association_primary_key(klass = nil)
klass option is necessary to support loading polymorphic associations.
- #join_foreign_key
- #join_foreign_type
- #join_primary_key(klass = nil)
- #macro
- #can_find_inverse_of_automatically? ⇒ Boolean private
AssociationReflection - Inherited
| #active_record_primary_key, #add_as_polymorphic_through, #add_as_source, #add_as_through, #association_class, #association_foreign_key, #association_primary_key, #association_scope_cache, #check_eager_loadable!, #check_validity!, | |
| #clear_association_scope_cache | This is for clearing cache on the reflection. |
| #collect_join_chain | A chain of reflections from this one back to the owner. |
| #compute_class, #extensions, #foreign_key, #join_foreign_key, #join_id_for, #join_primary_key, #join_primary_type, #join_table, | |
| #macro | Returns the macro type. |
| #polymorphic_inverse_of, #polymorphic_name, #source_reflection, #through_reflection, | |
| #automatic_inverse_of | returns either |
| #can_find_inverse_of_automatically? | Checks to see if the reflection doesn’t have any options that prevent us from being able to guess the inverse automatically. |
| #derive_class_name, #derive_fk_query_constraints, #derive_foreign_key, #derive_join_table, | |
| #inverse_name | Attempts to find the inverse association name automatically. |
| #scope_allows_automatic_inverse_of? | Scopes on the potential inverse reflection prevent automatic |
| #valid_inverse_reflection? | Checks if the inverse reflection that is returned from the |
MacroReflection - Inherited
| #== | Returns |
| #compute_class, | |
| #klass | Returns the class for the macro. |
| #scope_for, #derive_class_name, #normalize_options, #_klass | |
AbstractReflection - Inherited
| #alias_candidate, | |
| #build_association | Returns a new, unsaved instance of the associated class. |
| #build_scope, #chain, #check_validity_of_inverse!, | |
| #class_name | Returns the class name for the macro. |
| #constraints, #counter_cache_column, #inverse_of, | |
| #inverse_which_updates_counter_cache | We need to avoid the following situation: |
| #join_scope, #join_scopes, #klass_join_scope, | |
| #scopes | Returns a list of scopes that should be applied for this |
| #strict_loading_violation_message, #table_name, | |
| #actual_source_reflection | FIXME: this is a horrible name. |
| #ensure_option_not_given_as_class!, #primary_key | |
Constructor Details
This class inherits a constructor from ActiveRecord::Reflection::AssociationReflection
Instance Attribute Details
#belongs_to? ⇒ Boolean (readonly)
[ GitHub ]
# File 'activerecord/lib/active_record/reflection.rb', line 931
def belongs_to?; true; end
Instance Method Details
#association_class
[ GitHub ]# File 'activerecord/lib/active_record/reflection.rb', line 933
def association_class if polymorphic? Associations::BelongsToPolymorphicAssociation else Associations::BelongsToAssociation end end
#association_primary_key(klass = nil)
klass option is necessary to support loading polymorphic associations
# File 'activerecord/lib/active_record/reflection.rb', line 942
def association_primary_key(klass = nil) if primary_key = [:primary_key] @association_primary_key ||= if primary_key.is_a?(Array) primary_key.map { |pk| pk.to_s.freeze }.freeze else -primary_key.to_s end elsif (klass || self.klass).has_query_constraints? || [:query_constraints] (klass || self.klass).composite_query_constraints_list elsif (klass || self.klass).composite_primary_key? # If klass has composite primary key of shape [:<tenant_key>, :id], infer primary_key as :id primary_key = (klass || self.klass).primary_key primary_key.include?("id") ? "id" : primary_key else primary_key(klass || self.klass) end end
#can_find_inverse_of_automatically? ⇒ Boolean (private)
# File 'activerecord/lib/active_record/reflection.rb', line 973
def can_find_inverse_of_automatically?(*) !polymorphic? && super end
#join_foreign_key
[ GitHub ]# File 'activerecord/lib/active_record/reflection.rb', line 964
def join_foreign_key foreign_key end
#join_foreign_type
[ GitHub ]# File 'activerecord/lib/active_record/reflection.rb', line 968
def join_foreign_type foreign_type end
#join_primary_key(klass = nil)
[ GitHub ]# File 'activerecord/lib/active_record/reflection.rb', line 960
def join_primary_key(klass = nil) polymorphic? ? association_primary_key(klass) : association_primary_key end
#macro
[ GitHub ]# File 'activerecord/lib/active_record/reflection.rb', line 929
def macro; :belongs_to; end