Во время тестирования acts_as_audited я обнаружил (как также описано здесь ), что флаг: with_associations не создает записей таблицы аудита для отношений HABTM.
Например:
User < ActiveRecord::Base
has_and_belongs_to_many: :groups
acts_as_audited, with_associations: groups
Group < ActiveRecord::Base
has_and_belongs_to_many: :users
acts_as_audited, with_associations: users
(и проверенные варианты, т.е. с / без ассоциации)
В исходном коде видно, что все акты act_as_audited добавляет обратные вызовы, такие как before_update и after_create, в проверенные таблицы. Очевидно, они не добавляются в таблицы соединений.
Я пытался сделать такую модель, как:
GroupsUsers < ActiveRecord::Base
acts_as_audited
after_save: :test
def test
logger.debug "test"
end
но не увидел никаких дополнений в таблице аудита для операций CRUD над пользователями или группами. Я вижу, что оператор SQL действует на таблицу соединений в журналах, поэтому это говорит о том, что таблица соединений изменяется внутри системы таким образом, что обычные обратные вызовы обходятся.
Это правда? Есть ли какие-либо предложения по получению act_as_audited, чтобы заметить таблицу соединений или зарегистрировать ассоциации HABTM?