Rails 4.2Rails soft delete child record
У меня есть родительский класс, который принимает вложенные атрибуты для своих детей.
class Parent < ActiveRecord::Base
has_many :kids
accepts_nested_attributes_for :kids, allow_destroy: true
end
class Kid < ActiveRecord::Base
belongs_to :parent
def destroy
if some_count > 0
self.hidden = true
else
self.destroy
end
end
end
Я иногда хочу установить скрытый флаг на дочернем элементе, а не удалять его. Я делаю это через accepts_nested_attributes_for
. Мне нужно, чтобы это решение было настроено на стороне сервера, я не могу заставить пользователей решить, следует ли уничтожать или скрывать.
Но не разрушающие повышения ActiveRecord::RecordNotDestroyed - Failed to destroy the record:
Что правильный способ сделать это?
из документа «Поднято« ActiveRecord :: Persistence # destroy! », Когда вызов destroy будет возвращать false». (источник: http://api.rubyonrails.org/classes/ActiveRecord/RecordNotDestroyed.html) => вы, вероятно, назвали '.destroy!' в записи, и этот метод возвращает false, что вызывает ошибку – MrYoshiji