class ActiveRecord::Has::SparseAttributes::TableStorageConfig

Attributes

attribute_model[RW]
id_column[RW]

Public Class Methods

new(klass, options = {}) click to toggle source
# File lib/active_record/has/sparse_attributes/table_storage.rb, line 9
def initialize(klass, options = {})
        super
        options[:attribute_class_name] ||= 'SparseAttribute'
        options[:id_column] ||= @model_class.model_name.singular.to_s + '_id'
        if !options[:table_name].blank?
                if ActiveRecord::Base.methods.include?(:set_table_name)
                        table_name = ('set_table_name "' + options[:table_name] + '";') || ''
                else
                        table_name = 'self.table_name = "' + options[:table_name] + '";'
                end
        else
                table_name = ''                                           
        end
        @id_column = options[:id_column]
        klass.class_eval "class #{options[:attribute_class_name]} < ActiveRecord::Base; #{table_name} validates_presence_of :#{@id_column}, :name; end"
        @attribute_model = eval("klass::#{options[:attribute_class_name]}")
end

Public Instance Methods

instance(record) click to toggle source
# File lib/active_record/has/sparse_attributes/table_storage.rb, line 27
def instance(record)
        TableStorage.new(record, self)
end