aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/rails
diff options
context:
space:
mode:
authorJon Moss <me@jonathanmoss.me>2016-02-10 17:11:53 -0500
committerJon Moss <me@jonathanmoss.me>2016-02-22 20:45:36 -0500
commit1813b29fc7632959800252f36e4b2e6ed4ac7266 (patch)
tree6ec6ea3e813be72f421716b70af8c0b09c7229c3 /activerecord/lib/rails
parent063e81691933fd244fe04b362bc66b58250c0c64 (diff)
downloadrails-1813b29fc7632959800252f36e4b2e6ed4ac7266.tar.gz
rails-1813b29fc7632959800252f36e4b2e6ed4ac7266.tar.bz2
rails-1813b29fc7632959800252f36e4b2e6ed4ac7266.zip
Generate ApplicationRecord if it does not already exist
Diffstat (limited to 'activerecord/lib/rails')
-rw-r--r--activerecord/lib/rails/generators/active_record/model/model_generator.rb8
-rw-r--r--activerecord/lib/rails/generators/active_record/model/templates/application_record.rb3
2 files changed, 11 insertions, 0 deletions
diff --git a/activerecord/lib/rails/generators/active_record/model/model_generator.rb b/activerecord/lib/rails/generators/active_record/model/model_generator.rb
index 7395839fca..09d3e7d9b9 100644
--- a/activerecord/lib/rails/generators/active_record/model/model_generator.rb
+++ b/activerecord/lib/rails/generators/active_record/model/model_generator.rb
@@ -22,11 +22,13 @@ module ActiveRecord
def create_model_file
template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb")
+ generate_application_record
end
def create_module_file
return if regular_class_path.empty?
template 'module.rb', File.join('app/models', "#{class_path.join('/')}.rb") if behavior == :invoke
+ generate_application_record
end
hook_for :test_framework
@@ -37,6 +39,12 @@ module ActiveRecord
attributes.select { |a| !a.reference? && a.has_index? }
end
+ def generate_application_record
+ if self.behavior == :invoke && !File.exist?('app/models/application_record.rb')
+ template 'application_record.rb', 'app/models/application_record.rb'
+ end
+ end
+
# Used by the migration template to determine the parent name of the model
def parent_class_name
options[:parent] || determine_default_parent_class
diff --git a/activerecord/lib/rails/generators/active_record/model/templates/application_record.rb b/activerecord/lib/rails/generators/active_record/model/templates/application_record.rb
new file mode 100644
index 0000000000..10a4cba84d
--- /dev/null
+++ b/activerecord/lib/rails/generators/active_record/model/templates/application_record.rb
@@ -0,0 +1,3 @@
+class ApplicationRecord < ActiveRecord::Base
+ self.abstract_class = true
+end