Class: ActiveRecord::Generators::ModelGenerator

Inherits:
Base
  • Object
show all
Defined in:
activerecord/lib/rails/generators/active_record/model/model_generator.rb

Overview

:nodoc:

Instance Attribute Summary

Attributes included from Rails::Generators::Migration

#migration_class_name, #migration_file_name, #migration_number

Instance Method Summary collapse

Methods inherited from Base

base_root

Methods included from ActiveSupport::Concern

#append_features, #class_methods, extended, #included, #prepend_features, #prepended

Methods included from Rails::Generators::Migration

#create_migration, #migration_template, #set_migration_assigns!

Instance Method Details

#create_migration_fileObject

creates the migration file for the model.



20
21
22
23
24
# File 'activerecord/lib/rails/generators/active_record/model/model_generator.rb', line 20

def create_migration_file
  return if skip_migration_creation?
  attributes.each { |a| a.attr_options.delete(:index) if a.reference? && !a.has_index? } if options[:indexes] == false
  migration_template "../../migration/templates/create_table_migration.rb", File.join(db_migrate_path, "create_#{table_name}.rb")
end

#create_model_fileObject



26
27
28
29
# File 'activerecord/lib/rails/generators/active_record/model/model_generator.rb', line 26

def create_model_file
  generate_abstract_class if database && !custom_parent?
  template "model.rb", File.join("app/models", class_path, "#{file_name}.rb")
end

#create_module_fileObject



31
32
33
34
# File 'activerecord/lib/rails/generators/active_record/model/model_generator.rb', line 31

def create_module_file
  return if regular_class_path.empty?
  template "module.rb", File.join("app/models", "#{class_path.join('/')}.rb") if behavior == :invoke
end