in Ruby on Rails 4, diciamo che un genitore ha molti figli. Quando il genitore viene eliminato, anche i bambini devono essere cancellati. Oltre a questo, il bambino non deve essere cancellato a meno che non sia un orfano. Come farlo?impediscono la cancellazione di un bambino a meno che non venga eliminato anche il genitore
ho provato con il seguente
class Parent < ActiveRecord::Base
has_many :children, inverse_of: :parent, dependent: :destroy
end
class Child < ActiveRecord::Base
belongs_to :parent, inverse_of: :children
before_destroy :checks
private
def checks
not parent # true if orphan
end
end
Con l'assegno before_destroy, tuttavia, nulla viene cancellato. C'è un modo per dire questo metodo se il motivo per cui viene chiamato è dovuto alla cancellazione del genitore?
È una cosa strana da chiedere? Voglio dire, prevenendo la cancellazione dei bambini.
A meno che l'app non includa il codice che elimina direttamente i bambini, dovrebbe essere impossibile eliminarli direttamente, pur continuando a eliminarli come parte dell'eliminazione del genitore. Non capisco come ti trovi in questo problema. Potresti per favore essere più specifico? – monfresh
Hai ragione. Grazie. – user2553863