Sha256: 804dbfd50688e59a3f34e4f88a69e4b58d606b9debbf2ed614aaefde44ee9f1a
Contents?: true
Size: 855 Bytes
Versions: 3
Compression:
Stored size: 855 Bytes
Contents
# extended Relation: extracts relation from rows class Relation < ActiveRecord::Base def self.dangling names = Relation.pluck(:name).uniq models = [] names.each { |name| models |= name.split(' ') } hsh = {} models.each do |class_name| klass = class_name.constantize ids = klass.pluck(:id) idx = Relation.where('name like ?', "#{class_name} %").pluck(:from_id) idy = Relation.where('name like ?', "% #{class_name}").pluck(:to_id) arr = (idx | idy) - ids hsh[class_name] = arr if arr.length.positive? end hsh end def self.remove_dangling(hsh) hsh.each do |name, arr| arr.each do |idx| Relation.where(from_id: idx).where('name like ?', "#{name} %").delete_all Relation.where(to_id: idx).where('name like ?', "% #{name}").delete_all end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
relation-0.3.8 | app/models/dangling.rb |
relation-0.3.7 | app/models/dangling.rb |
relation-0.3.5 | app/models/dangling.rb |