<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,5 +1,5 @@
 class ScaffoldGenerator &lt; Rails::Generator::NamedBase
-  default_options :skip_timestamps =&gt; false, :skip_migration =&gt; false
+  default_options :skip_timestamps =&gt; false, :skip_migration =&gt; false, :force_plural =&gt; false
 
   attr_reader   :controller_name,
                 :controller_class_path,
@@ -16,6 +16,11 @@ class ScaffoldGenerator &lt; Rails::Generator::NamedBase
   def initialize(runtime_args, runtime_options = {})
     super
 
+    if @name == @name.pluralize &amp;&amp; !options[:force_plural]
+      logger.warning &quot;Plural version of the model detected, using singularized version.  Override with --force-plural.&quot;
+      @name = @name.singularize
+    end
+
     @controller_name = @name.pluralize
 
     base_name, @controller_class_path, @controller_file_path, @controller_class_nesting, @controller_class_nesting_depth = extract_modules(@controller_name)
@@ -81,6 +86,8 @@ class ScaffoldGenerator &lt; Rails::Generator::NamedBase
              &quot;Don't add timestamps to the migration file for this model&quot;) { |v| options[:skip_timestamps] = v }
       opt.on(&quot;--skip-migration&quot;,
              &quot;Don't generate a migration file for this model&quot;) { |v| options[:skip_migration] = v }
+      opt.on(&quot;--force-plural&quot;,
+             &quot;Forces the generation of a plural ModelName&quot;) { |v| options[:force_plural] = v }
     end
 
     def scaffold_views</diff>
      <filename>railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'generators/generator_test_helper'
+require 'abstract_unit'
 
 class RailsScaffoldGeneratorTest &lt; GeneratorTestCase
   
@@ -104,4 +105,45 @@ class RailsScaffoldGeneratorTest &lt; GeneratorTestCase
     assert_added_route_for :products
   end
 
+  uses_mocha(&quot;scaffold_force_plural_names&quot;) do
+    def test_scaffolded_plural_names
+      Rails::Generator::Base.logger.expects(:warning)
+      g = Rails::Generator::Base.instance('scaffold', %w(ProductLines))
+      assert_equal &quot;ProductLines&quot;, g.controller_name
+      assert_equal &quot;ProductLines&quot;, g.controller_class_name
+      assert_equal &quot;ProductLine&quot;, g.controller_singular_name
+      assert_equal &quot;product_lines&quot;, g.controller_plural_name
+      assert_equal &quot;product_lines&quot;, g.controller_file_name
+      assert_equal &quot;product_lines&quot;, g.controller_table_name
+    end
+  end
+
+  def test_scaffold_plural_model_name_without_force_plural_generates_singular_model
+    run_generator('scaffold', %w(Products name:string))
+
+    assert_generated_model_for :product
+    assert_generated_functional_test_for :products
+    assert_generated_unit_test_for :product
+    assert_generated_fixtures_for :products
+    assert_generated_helper_for :products
+    assert_generated_stylesheet :scaffold
+    assert_generated_views_for :products, &quot;index.html.erb&quot;,&quot;new.html.erb&quot;,&quot;edit.html.erb&quot;,&quot;show.html.erb&quot;
+    assert_skipped_migration :create_products
+    assert_added_route_for :products
+  end
+
+  def test_scaffold_plural_model_name_with_force_plural_forces_plural_model
+    run_generator('scaffold', %w(Products name:string --force-plural))
+
+    assert_generated_model_for :products
+    assert_generated_functional_test_for :products
+    assert_generated_unit_test_for :products
+    assert_generated_fixtures_for :products
+    assert_generated_helper_for :products
+    assert_generated_stylesheet :scaffold
+    assert_generated_views_for :products, &quot;index.html.erb&quot;,&quot;new.html.erb&quot;,&quot;edit.html.erb&quot;,&quot;show.html.erb&quot;
+    assert_skipped_migration :create_products
+    assert_added_route_for :products
+  end
+
 end</diff>
      <filename>railties/test/generators/rails_scaffold_generator_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>3c1e8ab0fecd5ee7f9328578016ef1e61214eeee</id>
    </parent>
  </parents>
  <author>
    <name>Pat George</name>
    <email>pat.george@gmail.com</email>
  </author>
  <url>http://github.com/rails/rails/commit/4ddca325eeef46e640a225efb9b297260e1e8e7d</url>
  <id>4ddca325eeef46e640a225efb9b297260e1e8e7d</id>
  <committed-date>2008-06-27T08:35:26-07:00</committed-date>
  <authored-date>2008-06-04T12:13:50-07:00</authored-date>
  <message>Warn and uses singularized ModelName if a plural ModelName is given to script/generate. Override with --force-plural. [#333 state:resolved]

Signed-off-by: Pratik Naik &lt;pratiknaik@gmail.com&gt;</message>
  <tree>aac70c659ec7c6e2b50ad1740708601edda8f651</tree>
  <committer>
    <name>Pratik Naik</name>
    <email>pratiknaik@gmail.com</email>
  </committer>
</commit>
