module BazaModels::Model::HasOneRelations
Public Class Methods
included(base)
click to toggle source
# File lib/baza_models/model/has_one_relations.rb, line 2 def self.included(base) base.extend(ClassMethods) end
Private Instance Methods
destroy_has_one_relations()
click to toggle source
# File lib/baza_models/model/has_one_relations.rb, line 77 def destroy_has_one_relations self.class.relationships.each do |relation_name, relation| next if relation.fetch(:type) != :has_one || relation[:dependent] != :destroy model = __send__(relation_name) if model && !model.destroy errors.add(:base, model.errors.full_messages.join(". ")) return false end end true end
restrict_has_one_relations()
click to toggle source
# File lib/baza_models/model/has_one_relations.rb, line 64 def restrict_has_one_relations self.class.relationships.each do |relation_name, relation| next if relation.fetch(:type) != :has_one || relation[:dependent] != :restrict_with_error if __send__(relation_name) errors.add(:base, "can't be destroyed because it contains #{relation_name}") return false end end true end