class ActiveRecord::ActsAsRelation::ActsAs
Attributes
association_name[R]
class_name[R]
model[R]
module[RW]
module_name[R]
name[R]
options[R]
scope[R]
Public Class Methods
new(model_name, scope = nil, options = {})
click to toggle source
# File lib/active_record/acts_as_relation/acts_as.rb, line 7 def initialize(model_name, scope = nil, options = {}) @model_name = model_name @options, @scope = scope.is_a?(Hash) ? [scope, nil] : [options, scope] @name = @model_name.to_s.underscore.singularize.to_sym @class_name = @options[:class_name] || @name.to_s.camelcase @model = @class_name.constantize @association_name = @options[:as] || @model.acts_as_association_name @module_name = "ActsAs#{name.to_s.camelcase}" end
Public Instance Methods
has_one_options()
click to toggle source
# File lib/active_record/acts_as_relation/acts_as.rb, line 22 def has_one_options @has_one_options ||= { as: association_name, class_name: class_name, inverse_of: association_name.to_sym, autosave: true, validate: false, dependent: options.fetch(:dependent, :destroy) } end
parent_relations()
click to toggle source
# File lib/active_record/acts_as_relation/acts_as.rb, line 18 def parent_relations @parent_relations ||= (model.reflect_on_all_associations.map(&:name) - [association_name]).map { |a| a.to_s + '_id' } end