| Module | ActiveRecord::Acts::EavModel::InstanceMethods::ClassMethods |
| In: |
lib/acts_as_eav_model.rb
|
Rake migration task to create the versioned table using options passed to has_eav_behavior
# 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
# 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