module BazaModels::Model::HasManyRelations
Public Class Methods
included(base)
click to toggle source
# File lib/baza_models/model/has_many_relations.rb, line 2 def self.included(base) base.extend(ClassMethods) end
Private Instance Methods
destroy_has_many_relations()
click to toggle source
# File lib/baza_models/model/has_many_relations.rb, line 71 def destroy_has_many_relations self.class.relationships.each do |relation_name, relation| next if relation.fetch(:type) != :has_many || relation[:dependent] != :destroy __send__(relation_name).each do |model| unless model.destroy errors.add(:base, model.errors.full_messages.join(". ")) return false end end end true end
restrict_has_many_relations()
click to toggle source
# File lib/baza_models/model/has_many_relations.rb, line 58 def restrict_has_many_relations self.class.relationships.each do |relation_name, relation| next if relation.fetch(:type) != :has_many || relation[:dependent] != :restrict_with_error if __send__(relation_name).any? errors.add(:base, "can't be destroyed because it contains #{relation_name}") return false end end true end