diff --git a/lib/active_record_doctor/detectors/missing_unique_indexes.rb b/lib/active_record_doctor/detectors/missing_unique_indexes.rb index 8f38cf9..5db9f3e 100644 --- a/lib/active_record_doctor/detectors/missing_unique_indexes.rb +++ b/lib/active_record_doctor/detectors/missing_unique_indexes.rb @@ -86,7 +86,7 @@ def has_ones_without_indexes # rubocop:disable Naming/PredicateName else [has_one.foreign_key.to_s] end - next if ignore_columns.include?("#{model.name}(#{columns.join(',')})") + next if ignore_columns.include?("#{has_one.klass.name}(#{columns.join(',')})") table_name = has_one.klass.table_name next if unique_index?(table_name, columns) diff --git a/test/active_record_doctor/detectors/missing_unique_indexes_test.rb b/test/active_record_doctor/detectors/missing_unique_indexes_test.rb index 326ad01..2cd1904 100644 --- a/test/active_record_doctor/detectors/missing_unique_indexes_test.rb +++ b/test/active_record_doctor/detectors/missing_unique_indexes_test.rb @@ -440,6 +440,26 @@ def test_config_ignore_columns refute_problems end + def test_config_ignore_columns_from_has_one + create_table(:users) + .define_model do + has_one :account, class_name: "TransientRecord::Models::Account" + end + + create_table(:accounts) do |t| + t.integer :user_id + end.define_model + + config_file(<<-CONFIG) + ActiveRecordDoctor.configure do |config| + config.detector :missing_unique_indexes, + ignore_columns: ["TransientRecord::Models::Account(user_id)"] + end + CONFIG + + refute_problems + end + class DummyValidator < ActiveModel::Validator def validate(record) end