Sha256: 138d76d1897f9815b050e80f4bef70d5a4a3bda4443e01c652ac24c91d1090c8

Contents?: true

Size: 518 Bytes

Versions: 23

Compression:

Stored size: 518 Bytes

Contents

# frozen_string_literal: true

class Tagging < ApplicationRecord
  belongs_to :tag
  belongs_to :taggable, polymorphic: true, touch: true

  validates :taggable_type, presence: true
  validates :tag_id,
            uniqueness: { scope: %i[taggable_type taggable_id] }

  def self.tagged_class(taggable)
    ActiveRecord::Base.send(
      :class_of_active_record_descendant,
      taggable.class
    ).to_s
  end

  def self.find_taggable(tagged_class, tagged_id)
    tagged_class.constantize.find(tagged_id)
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
pages_core-3.15.5 app/models/tagging.rb
pages_core-3.15.4 app/models/tagging.rb
pages_core-3.15.3 app/models/tagging.rb
pages_core-3.15.2 app/models/tagging.rb
pages_core-3.15.1 app/models/tagging.rb
pages_core-3.14.0 app/models/tagging.rb
pages_core-3.13.0 app/models/tagging.rb
pages_core-3.12.7 app/models/tagging.rb
pages_core-3.12.6 app/models/tagging.rb
pages_core-3.12.5 app/models/tagging.rb
pages_core-3.12.4 app/models/tagging.rb
pages_core-3.12.3 app/models/tagging.rb
pages_core-3.12.2 app/models/tagging.rb
pages_core-3.12.1 app/models/tagging.rb
pages_core-3.12.0 app/models/tagging.rb
pages_core-3.11.3 app/models/tagging.rb
pages_core-3.11.2 app/models/tagging.rb
pages_core-3.11.1 app/models/tagging.rb
pages_core-3.11.0 app/models/tagging.rb
pages_core-3.10.2 app/models/tagging.rb