Class: ActiveRecord::PredicateBuilder::AssociationQueryValue
Do not use. This class is for internal use only.
Class Method Summary
Instance Attribute Summary
Instance Method Summary
Constructor Details
.new(reflection, value) ⇒ AssociationQueryValue
[ GitHub ]
# File 'activerecord/lib/active_record/relation/predicate_builder/association_query_value.rb', line 6
def initialize(reflection, value)
@reflection = reflection
@value = value
end
Instance Attribute Details
#polymorphic_clause? ⇒ Boolean
[ GitHub ]
# File 'activerecord/lib/active_record/relation/predicate_builder/association_query_value.rb', line 55
def polymorphic_clause?
primary_type && !value.where_values_hash.has_key?(primary_type)
end
#reflection
[ GitHub ]
# File 'activerecord/lib/active_record/relation/predicate_builder/association_query_value.rb', line 23
attr_reader :reflection, :value
#select_clause? ⇒ Boolean
[ GitHub ]
# File 'activerecord/lib/active_record/relation/predicate_builder/association_query_value.rb', line 51
def select_clause?
value.select_values.empty?
end
#value
[ GitHub ]
# File 'activerecord/lib/active_record/relation/predicate_builder/association_query_value.rb', line 23
attr_reader :reflection, :value
Instance Method Details
#convert_to_id(value)
[ GitHub ]
#polymorphic_name
[ GitHub ]
# File 'activerecord/lib/active_record/relation/predicate_builder/association_query_value.rb', line 47
def polymorphic_name
reflection.polymorphic_name
end
#primary_key
[ GitHub ]
# File 'activerecord/lib/active_record/relation/predicate_builder/association_query_value.rb', line 39
def primary_key
reflection.join_primary_key
end
#primary_type
[ GitHub ]
# File 'activerecord/lib/active_record/relation/predicate_builder/association_query_value.rb', line 43
def primary_type
reflection.join_primary_type
end
#queries
[ GitHub ]
# File 'activerecord/lib/active_record/relation/predicate_builder/association_query_value.rb', line 11
def queries
if reflection.join_foreign_key.is_a?(Array)
id_list = ids
id_list = id_list.pluck(primary_key) if id_list.is_a?(Relation)
id_list.map { |ids_set| reflection.join_foreign_key.zip(ids_set).to_h }
else
[ reflection.join_foreign_key => ids ]
end
end