Sha256: c7fea5aad2011d15d1238178776affaab0e0d2562009213cd1c5e5f76d4d3501
Contents?: true
Size: 1.09 KB
Versions: 29
Compression:
Stored size: 1.09 KB
Contents
module Dorsale module CustomerVault class Person < ActiveRecord::Base self.abstract_class = true after_destroy :destroy_links acts_as_taggable def person_type self.class.to_s.split("::").last.downcase.to_sym end def tags_on(*args) super(*args).order(:name) end has_many :comments, -> { order("id DESC") }, class_name: ::Dorsale::Comment, as: :commentable, dependent: :destroy has_one :address, class_name: ::Dorsale::Address, as: :addressable, inverse_of: :addressable, dependent: :destroy has_many :tasks, class_name: ::Dorsale::Flyboy::Task, as: :taskable, dependent: :destroy accepts_nested_attributes_for :address, allow_destroy: true def links a = Link.where(alice_id: self.id, alice_type: self.class).map {|l| {title: l.title, person: l.bob, origin: l}} b = Link.where(bob_id: self.id, bob_type: self.class).map {|l| {title: l.title, person: l.alice, origin: l}} return a + b end def destroy_links links.map{ |l| l[:origin].destroy! } end end end end
Version data entries
29 entries across 29 versions & 1 rubygems