class ActiveRecord::Has::SparseAttributes::TableStorageConfig
Attributes
attribute_model[RW]
id_column[RW]
Public Class Methods
new(klass, options = {})
click to toggle source
Calls superclass method
ActiveRecord::Has::SparseAttributes::StorageConfig::new
# 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