module Cookbook::Mixins::ActsAsUsedIn::ClassMethods

Extended by acts_as_used_in mixin

Attributes

label_method[RW]
uses_of[RW]

Public Instance Methods

associate_uses_of() click to toggle source
# File lib/cookbook/mixins/acts_as_used_in.rb, line 25
def associate_uses_of
  uses_of.each do |table_sym|
    model = table_sym.to_s.classify.constantize
    name = model.model_name.to_s

    has_many "#{model.model_name.param_key}_uses".to_sym, lambda {
      where(use_in_type: name)
    }, as: :use_of, class_name: 'Cookbook::Use'
    has_many table_sym, through: :uses, source: :use_in, source_type: name
  end
end