diff --git a/lib/active_record_doctor/detectors/missing_presence_validation.rb b/lib/active_record_doctor/detectors/missing_presence_validation.rb index bcc3f3d8..8e6544a3 100644 --- a/lib/active_record_doctor/detectors/missing_presence_validation.rb +++ b/lib/active_record_doctor/detectors/missing_presence_validation.rb @@ -56,7 +56,7 @@ def detect (config(:ignore_columns_with_default) && (column.default || column.default_function)) || # Explicitly ignored columns should be skipped. - config(:ignore_attributes).include?("#{model.name}.#{column.name}") + ignored?("#{model.name}.#{column.name}", config(:ignore_attributes)) end # At this point the only columns that are left are those that DO diff --git a/test/active_record_doctor/detectors/missing_presence_validation_test.rb b/test/active_record_doctor/detectors/missing_presence_validation_test.rb index 45960765..dec36944 100644 --- a/test/active_record_doctor/detectors/missing_presence_validation_test.rb +++ b/test/active_record_doctor/detectors/missing_presence_validation_test.rb @@ -308,6 +308,21 @@ def test_config_ignore_attributes refute_problems end + def test_config_ignore_attributes_regexp + Context.create_table(:users) do |t| + t.string :name, null: false + end.define_model + + config_file(<<-CONFIG) + ActiveRecordDoctor.configure do |config| + config.detector :missing_presence_validation, + ignore_attributes: [/name/] + end + CONFIG + + refute_problems + end + def test_config_ignore_polymorphic_associations_via_relationship_name Context.create_table(:comments) do |t| t.references :commentable, null: false, polymorphic: true