method
new
v8.1.1 -
Show latest stable
- Class:
ActiveRecord::Reflection::AssociationReflection
new(name, scope, options, active_record)public
No documentation available.
# File activerecord/lib/active_record/reflection.rb, line 517
def initialize(name, scope, options, active_record)
super
@validated = false
@type = -(options[:foreign_type]&.to_s || "#{options[:as]}_type") if options[:as]
@foreign_type = -(options[:foreign_type]&.to_s || "#{name}_type") if options[:polymorphic]
@join_table = nil
@foreign_key = nil
@association_foreign_key = nil
@association_primary_key = nil
if options[:query_constraints]
raise ConfigurationError, <<~MSG.squish
Setting `query_constraints:` option on `#{active_record}.#{macro} :#{name}` is not allowed.
To get the same behavior, use the `foreign_key` option instead.
MSG
end
# If the foreign key is an array, set query constraints options and don't use the foreign key
if options[:foreign_key].is_a?(Array)
options[:query_constraints] = options.delete(:foreign_key)
end
@deprecated = !!options[:deprecated]
ensure_option_not_given_as_class!(:class_name)
end