Module: Mcfly::Model::InstanceMethods

Defined in:
lib/mcfly/has_mcfly.rb

Instance Method Summary collapse

Instance Method Details

#allow_destroyObject



145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'lib/mcfly/has_mcfly.rb', line 145

def allow_destroy
  # checks against registered associations
  if self.class.class_variable_defined?(:@@associations)
    self.class.class_variable_get(:@@associations).each do |klass, fk|
      if klass.where("obsoleted_dt = ? AND #{fk} = ?",
                     'infinity', self.id).exists?
        self.errors.add(:base,
                        "#{self.class.name.demodulize} can't be deleted "\
                        "because #{klass.name.demodulize} records exist")
        throw :abort
      end
    end
  end

  self.errors.blank?
end

#record_validationObject



138
139
140
141
142
143
# File 'lib/mcfly/has_mcfly.rb', line 138

def record_validation
  if self.changed?
    self.user_id = Mcfly.whodunnit[:id] rescue nil
    self.obsoleted_dt ||= 'infinity'
  end
end