Моя текущая Cocoon/вложенная форма работает очень хорошо. Однако я хотел бы изменить это поведение:Rails + Cocoon: обновить вложенный ресурс вместо его уничтожения
Главная модель:
accepts_nested_attributes_for :varietals, :reject_if => lambda { |a| a[:grape_id].blank? && a[:id].blank? }, allow_destroy: true
Вместо того, чтобы удалить объект сортовой с allow_destroy, я хочу, чтобы обновить поле состояния до 0, когда он будет уничтожен.
Можно ли вызвать функцию в этой строке, чтобы сделать это? Должен ли я обновить модель varietal?
Что-то вроде:
varietal.update_attributes(:status => 0)
когда один вложенный ресурс удаляется пользователем.
Спасибо.
EDIT: после данных после редактирования главной формы и удаление вложенного сортового, чтобы помочь:
"varietals_attributes"=>{"0"=>{"grape_attributes"=>{"id"=>"168"}, "grape_id"=>"168", "percent"=>"20", "_destroy"=>"1", "id"=>"32709368-3496-47EA-A386-B1CCECA0BAEF"}},
Если я добавлю такой обратный вызов before_destroy в varietal model, я могу изменить поле состояния, но он сразу же уничтожит объект, не так ли? Я отредактировал мое сообщение, чтобы опубликовать данные, обновленные после уничтожения. –
Если вы удалите 'allow_destroy', он не будет помечать объект для уничтожения. – PoloniculMov
Я сделал это, но мой callback не вызывается в varietals model (и кажется логичным). –