diff options
-rw-r--r-- | railties/CHANGELOG | 2 | ||||
-rw-r--r-- | railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb | 9 | ||||
-rw-r--r-- | railties/test/rails_generator_test.rb | 10 |
3 files changed, 20 insertions, 1 deletions
diff --git a/railties/CHANGELOG b/railties/CHANGELOG index 79c43bbe3e..cc536c3424 100644 --- a/railties/CHANGELOG +++ b/railties/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Fixed scaffold generator when started with only 1 parameter #2609 [self@mattmower.com] + * rake should run functional tests even if the unit tests have failures [Jim Weirich] * Back off cleanpath to be symlink friendly. Closes #2533 [Nicholas Seckar] diff --git a/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb b/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb index 7987e888e0..7ac2ac76e9 100644 --- a/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +++ b/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb @@ -46,9 +46,16 @@ class ScaffoldGenerator < Rails::Generator::NamedBase def initialize(runtime_args, runtime_options = {}) super - @controller_name = args.shift or (ActiveRecord::Base.pluralize_table_names ? @name.pluralize : @name) + + if runtime_args.length > 1 + @controller_name = runtime_args[1] + else + @controller_name = (ActiveRecord::Base.pluralize_table_names ? @name.pluralize : @name) + end + base_name, @controller_class_path, @controller_file_path, @controller_class_nesting, @controller_class_nesting_depth = extract_modules(@controller_name) @controller_class_name_without_nesting, @controller_singular_name, @controller_plural_name = inflect_names(base_name) + if @controller_class_nesting.empty? @controller_class_name = @controller_class_name_without_nesting else diff --git a/railties/test/rails_generator_test.rb b/railties/test/rails_generator_test.rb index 00cd94596b..23d843e879 100644 --- a/railties/test/rails_generator_test.rb +++ b/railties/test/rails_generator_test.rb @@ -92,4 +92,14 @@ class RailsGeneratorTest < Test::Unit::TestCase g = Rails::Generator::Base.instance('working', %w(admin/foo bar baz)) assert_equal g.singular_name, g.table_name end + + def test_scaffold_controller_name + # Default behaviour is use the model name + g = Rails::Generator::Base.instance('scaffold', %w(Product)) + assert_equal "Product", g.controller_name + + # When we specify a controller name make sure it sticks!! + g = Rails::Generator::Base.instance('scaffold', %w(Product Admin)) + assert_equal "Admin", g.controller_name + end end |