Module ActiveRecord::Acts::EavModel::InstanceMethods::ClassMethods
In: lib/acts_as_eav_model.rb

Methods

Public Instance methods

Rake migration task to create the versioned table using options passed to has_eav_behavior

[Source]

     # File lib/acts_as_eav_model.rb, line 291
291:           def create_attribute_table(options = {})
292:             eav_options.keys.each do |key|
293:               continue if eav_options[key][:parent] != self.class_name
294:               model = eav_options[key][:class_name]
295: 
296:               return if connection.tables.include?(eav_options[model][:table_name])
297: 
298:               self.connection.create_table(eav_options[model][:table_name], options) do |t|
299:                 t.integer eav_options[model][:foreign_key], :null => false
300:                 t.string eav_options[model][:name_field], :null => false
301:                 t.string eav_options[model][:value_field], :null => false
302: 
303:                 t.timestamps
304:               end
305: 
306:               self.connection.add_index eav_options[model][:table_name], eav_options[model][:foreign_key]
307:             end
308: 
309:           end

Rake migration task to drop the attribute table

[Source]

     # File lib/acts_as_eav_model.rb, line 314
314:           def drop_attribute_table(options = {})
315:             eav_options.keys.each do |key|
316:               continue if eav_options[key][:parent] != self.class_name
317:               model = eav_options[key][:class_name]
318:               self.connection.drop_table eav_options[model][:table_name]
319:             end
320: 
321:           end

[Validate]