17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/database_validations/lib/uniqueness_key_extractor.rb', line 17
def attribute_by_indexes_keys(validator) adapter = Adapters::BaseAdapter.new(validator.klass)
if validator.index_name
[[KeyGenerator.for_unique_index(validator.index_name), validator.attributes[0]]].to_h
else
validator.attributes.map do |attribute|
columns = KeyGenerator.unify_columns(attribute, validator.options[:scope])
index = adapter.find_unique_index(columns, validator.where)
[KeyGenerator.for_unique_index(index.name), attribute]
end.to_h
end
end
|