aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib')
-rw-r--r--railties/lib/generators/active_record/model/model_generator.rb12
-rw-r--r--railties/lib/generators/active_record/model/templates/model.rb2
-rw-r--r--railties/lib/generators/rails/model/USAGE3
-rw-r--r--railties/lib/generators/rails/model_subclass/model_subclass_generator.rb11
4 files changed, 24 insertions, 4 deletions
diff --git a/railties/lib/generators/active_record/model/model_generator.rb b/railties/lib/generators/active_record/model/model_generator.rb
index 45e773fde1..53592c222f 100644
--- a/railties/lib/generators/active_record/model/model_generator.rb
+++ b/railties/lib/generators/active_record/model/model_generator.rb
@@ -8,7 +8,7 @@ module ActiveRecord
conditional_class_option :timestamps
conditional_class_option :migration
- class_option :parent, :type => :string, :default => "ActiveRecord::Base",
+ class_option :parent, :type => :string,
:desc => "The parent class for the generated model"
def create_model_file
@@ -17,13 +17,19 @@ module ActiveRecord
# TODO Add migration support
def create_migration_file
-# unless options[:skip_migration]
+ if options[:migration] && options[:parent].nil?
# m.migration_template 'migration.rb', 'db/migrate', :assigns => {
# :migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}"
# }, :migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}"
-# end
+ end
end
+ protected
+
+ def parent_class_name
+ options[:parent] || "ActiveRecord::Base"
+ end
+
end
end
end
diff --git a/railties/lib/generators/active_record/model/templates/model.rb b/railties/lib/generators/active_record/model/templates/model.rb
index fb337d10e6..21ae29e9f2 100644
--- a/railties/lib/generators/active_record/model/templates/model.rb
+++ b/railties/lib/generators/active_record/model/templates/model.rb
@@ -1,4 +1,4 @@
-class <%= class_name %> < <%= options[:parent] %>
+class <%= class_name %> < <%= parent_class_name.classify %>
<% attributes.select {|attr| attr.reference? }.each do |attribute| -%>
belongs_to :<%= attribute.name %>
<% end -%>
diff --git a/railties/lib/generators/rails/model/USAGE b/railties/lib/generators/rails/model/USAGE
index 73c8b69153..b056d5df8b 100644
--- a/railties/lib/generators/rails/model/USAGE
+++ b/railties/lib/generators/rails/model/USAGE
@@ -12,6 +12,9 @@ Description:
This generator invokes your configured ORM and test framework, which
defaults to ActiveRecord and TestUnit.
+ Finally, if --parent option is given, it's used as superclass of the
+ created model. This allows you create Single Table Inheritance models.
+
Examples:
`./script/generate model account`
diff --git a/railties/lib/generators/rails/model_subclass/model_subclass_generator.rb b/railties/lib/generators/rails/model_subclass/model_subclass_generator.rb
new file mode 100644
index 0000000000..4649709780
--- /dev/null
+++ b/railties/lib/generators/rails/model_subclass/model_subclass_generator.rb
@@ -0,0 +1,11 @@
+module Rails
+ module Generators
+ class ModelSubclassGenerator < Base
+ desc "model_subclass is deprecated. Invoke model with --parent option instead."
+
+ def say_deprecation_warn
+ say self.class.desc
+ end
+ end
+ end
+end