У меня есть модель has_many: through, которая отлично работает.
has_many :varietals
has_many :grapes, :through => :varietals, :dependent => :destroy
Я хотел бы вызвать другое действие вместо: destroy. Фактически, я не хочу обнулять элемент ИЛИ уничтожать его, я хочу обновить поле статуса записи с 1 до 0 вместо уничтожения записи.
Как вызвать собственный метод вместо уничтожения? Полагаю, я могу сделать это в самой модели ... Спасибо.
Где поставить этот метод? В главной модели или в модели, в которой запись будет уничтожена?
РЕДАКТИРОВАТЬ :
Извините, но я думаю, что недостаточно объяснил свою проблему. Моя проблема не только в том, что что-то после того, как эталонная модель разрушена. Я хочу настроить действие уничтожения в самой модели Varietal, даже если основная запись не уничтожена.
Что-то вроде:
class Varietal < ActiveRecord::Base
private
def destroy
self.update_attributes(:status => 0)
end
end
На самом деле это действие не вызывается ...