Sha256: be88a671b5b6988b9b0b71d5592138bfeb71a00887a4e06c3a8fa152e3fb2527
Contents?: true
Size: 1.02 KB
Versions: 2
Compression:
Stored size: 1.02 KB
Contents
module ActiveRecord module ActsAs module ReflectionsWithActsAs def _reflections super.reverse_merge(acting_as_model._reflections) end end module ClassMethods def self.included(module_) module_.prepend ReflectionsWithActsAs end def validators_on(*args) super + acting_as_model.validators_on(*args) end def actables acting_as_model.where(actable_id: select(:id)) end def respond_to_missing?(method, include_private = false) acting_as_model.methods_callable_by_submodel.include?(method) || super end ruby2_keywords def method_missing(method, *args, &block) if acting_as_model.methods_callable_by_submodel.include?(method) result = acting_as_model.public_send(method, *args, &block) if result.is_a?(ActiveRecord::Relation) all.joins(acting_as_name.to_sym).merge(result) else result end else super end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
active_record-acts_as-5.1.0 | lib/active_record/acts_as/class_methods.rb |
active_record-acts_as-5.0.3 | lib/active_record/acts_as/class_methods.rb |