Module: ThroughCheckboxes::Core

Defined in:
lib/throughcheckboxes/core.rb

Defined Under Namespace

Classes: ThroughCheckboxesNameError

Class Method Summary collapse

Class Method Details

.relation_klass(klass, relation) ⇒ Object



17
18
19
20
21
# File 'lib/throughcheckboxes/core.rb', line 17

def self.relation_klass(klass, relation)
    source=klass.reflections[relation].options[:source]
    relation_klass = source.present? ? source.to_s : relation.to_s
    relation_klass.classify.constantize
end

.validate(klass, *relations) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/throughcheckboxes/core.rb', line 7

def self.validate(klass, *relations)
    for relation in relations
        unless (klass.reflections[relation].present? && 
                klass.reflections[relation].macro == :has_many &&
                klass.reflections[relation].options[:through].present?)
            raise ThroughCheckboxesNameError, "#{relation} isn't an has_many :through for model #{klass}, check it out please."
        end
    end
end