Class: ActiveRecord::Generators::ModelGenerator

Inherits:
Base 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

Methods included from Rails::Generators::Migration

#create_migration, #migration_template, #set_migration_assigns!

Methods inherited from Rails::Generators::NamedBase

#initialize

Methods inherited from Rails::Generators::Base

base_root, class_option, default_source_root, desc, exit_on_failure?, hide!, hook_for, inherited, namespace, remove_hook_for, source_root

Methods included from Rails::Generators::Actions

#add_source, #environment, #gem, #gem_group, #generate, #git, #github, #initialize, #initializer, #lib, #rails_command, #rake, #rakefile, #readme, #route, #vendor

Constructor Details

This class inherits a constructor from Rails::Generators::NamedBase

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 unless options[:migration] && options[:parent].nil?
  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
# File 'activerecord/lib/rails/generators/active_record/model/model_generator.rb', line 26

def create_model_file
  template "model.rb", File.join("app/models", class_path, "#{file_name}.rb")
end

#create_module_fileObject



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

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