У меня есть эти моделиafter_destroy не вызывается для присоединенной таблицы
class User < ActiveRecord::Base
has_many :user_functions, :dependent => :destroy
has_many :functions, :through => :user_functions
accepts_nested_attributes_for :functions, allow_destroy: true
Модель связанной таблицы:
class UserFunction < ActiveRecord::Base
belongs_to :user, inverse_of: :user_functions
belongs_to :function, inverse_of: :user_functions
after_destroy :unplan_items
after_create :plan_items
и, конечно, модель функции, но это как пользователь ...
Теперь, когда я следующий в моих тестах:
@user.functions = [@functions]
@user.save
expect(@user.planned_items.count).to eq(1)
@user.functions = []
@user.save
Я замечаю, что callback after_destroy не вызывается. Почему это и как я могу избежать этого. Существуют определенные шаги, которые необходимо выполнять каждый раз, когда пользовательская функция уничтожается ...
Я считаю, что это имеет отношение к: https://github.com/rails/rails/issues/7618 (я использую рельсы 4.2.5, хотя). After_create работает идеально, хотя ...
Установка переменной экземпляра в [], а затем сохранение не совпадает с вызовом destroy. –
Жаль, что я не буду следовать за тобой. @user относится к определенному пользователю, который имеет 3 функции, связанные с ним через таблицу user_functions. [] эффективно удаляет эти записи (user_functions). Почему это не проходит через уничтожение этих? – rept