Может быть, я не совсем понимаю, что вы хотите архивировать.Вы пробовали это с ActiveRecord :: NestedAttributes?
Если вы просто обновляете B - B будет проверено.Вы можете запретить сохранение B - но не A.
Может быть, вы хотите установить некоторые флаги в A-triggert, обновив B. Это можно сделать с помощью методов обратного вызова: https://guides.rubyonrails.org/active_record_callbacks.html
ИлиВы можете пометить B как недействительный, если для A
нет других активных B что-то в этом роде:
validate :your_custom_validation_for_b
def your_custom_validation_for_b
unless self.your_model_a.your_model_b.where(active: true).exists?
errors.add(:active, "at least this B for A should be active")
end
end