From d546a0312ce595093adf2ba07970ff19cf8db21b Mon Sep 17 00:00:00 2001 From: Pedro Pozelli Date: Sun, 9 Mar 2025 18:39:04 -0300 Subject: [PATCH 1/2] Prevent model callbacks if deactivated --- lib/meilisearch-rails.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/meilisearch-rails.rb b/lib/meilisearch-rails.rb index c8dda0e..f47697d 100644 --- a/lib/meilisearch-rails.rb +++ b/lib/meilisearch-rails.rb @@ -418,7 +418,7 @@ def meilisearch(options = {}, &block) proc.call(record, remove) if ::MeiliSearch::Rails.active? && !ms_without_auto_index_scope end end - unless options[:auto_index] == false + if ::MeiliSearch::Rails.active? && options[:auto_index] != false if defined?(::Sequel::Model) && self < Sequel::Model class_eval do copy_after_validation = instance_method(:after_validation) From ab62d262b2b41482ef8c704e716c7e84bd09f325 Mon Sep 17 00:00:00 2001 From: ellnix Date: Sun, 9 Mar 2025 23:17:25 +0100 Subject: [PATCH 2/2] Test disabling of callbacks when not active --- spec/meilisearch/activation_spec.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spec/meilisearch/activation_spec.rb b/spec/meilisearch/activation_spec.rb index 9a9a7a2..846c5e3 100644 --- a/spec/meilisearch/activation_spec.rb +++ b/spec/meilisearch/activation_spec.rb @@ -1,4 +1,5 @@ require 'support/models/queued_models' +require 'support/models/movie' describe MeiliSearch::Rails do it 'is active by default' do @@ -24,6 +25,14 @@ EnqueuedDocument.create! name: 'hello world' end.not_to raise_error end + + it 'does not run callbacks on save' do + movie = Movie.new(title: 'Harry Potter') + allow(movie).to receive(:ms_index!) + movie.save + + expect(movie).not_to have_received(:ms_index!) + end end context 'with a block' do