method
new
v7.2.3 -
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 525
def initialize(name, scope, options, active_record)
super
@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]
ActiveRecord.deprecator.warn <<~MSG.squish
Setting `query_constraints:` option on `#{active_record}.#{macro} :#{name}` is deprecated.
To maintain current 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
ensure_option_not_given_as_class!(:class_name)
end