From f9826292ab49b8a304510718a7400ff9e3c51070 Mon Sep 17 00:00:00 2001 From: Andrew Chalkley Date: Thu, 5 Mar 2009 21:16:04 +0000 Subject: [PATCH] Drying up scaffold generator by moving form into partial --- actionpack/lib/action_view/helpers/form_helper.rb | 2 +- .../components/scaffold/scaffold_generator.rb | 2 +- .../scaffold/templates/view__form.html.erb | 13 +++++++++++++ .../scaffold/templates/view_edit.html.erb | 14 +------------- .../scaffold/templates/view_new.html.erb | 14 +------------- .../generators/rails_scaffold_generator_test.rb | 10 +++++----- 6 files changed, 22 insertions(+), 33 deletions(-) create mode 100644 railties/lib/rails_generator/generators/components/scaffold/templates/view__form.html.erb diff --git a/actionpack/lib/action_view/helpers/form_helper.rb b/actionpack/lib/action_view/helpers/form_helper.rb index a589bcb..99c1df9 100644 --- a/actionpack/lib/action_view/helpers/form_helper.rb +++ b/actionpack/lib/action_view/helpers/form_helper.rb @@ -984,7 +984,7 @@ module ActionView @template.error_messages_for(@object_name, objectify_options(options)) end - def submit(value = "Save changes", options = {}) + def submit(value = @object.respond_to?(:new_record?) && @object.new_record? ? "Create" : "Update", options = {}) @template.submit_tag(value, options.reverse_merge(:id => "#{object_name}_submit")) end 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 2a5edee..159feec 100644 --- a/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +++ b/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb @@ -93,7 +93,7 @@ class ScaffoldGenerator < Rails::Generator::NamedBase end def scaffold_views - %w[ index show new edit ] + %w[ index show new edit _form ] end def model_name diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/view__form.html.erb b/railties/lib/rails_generator/generators/components/scaffold/templates/view__form.html.erb new file mode 100644 index 0000000..9bb091e --- /dev/null +++ b/railties/lib/rails_generator/generators/components/scaffold/templates/view__form.html.erb @@ -0,0 +1,13 @@ +<%% form_for(@<%= singular_name %>) do |f| %> + <%%= f.error_messages %> + +<% for attribute in attributes -%> +

+ <%%= f.label :<%= attribute.name %> %>
+ <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %> +

+<% end -%> +

+ <%%= f.submit %> +

+<%% end %> \ No newline at end of file diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb b/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb index cca1d61..d600359 100644 --- a/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb +++ b/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb @@ -1,18 +1,6 @@

Editing <%= singular_name %>

-<%% form_for(@<%= singular_name %>) do |f| %> - <%%= f.error_messages %> - -<% for attribute in attributes -%> -

- <%%= f.label :<%= attribute.name %> %>
- <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %> -

-<% end -%> -

- <%%= f.submit 'Update' %> -

-<%% end %> +<%%= render :partial => "form" %> <%%= link_to 'Show', @<%= singular_name %> %> | <%%= link_to 'Back', <%= plural_name %>_path %> \ No newline at end of file diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb b/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb index 96c89fc..9d13ffb 100644 --- a/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb +++ b/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb @@ -1,17 +1,5 @@

New <%= singular_name %>

-<%% form_for(@<%= singular_name %>) do |f| %> - <%%= f.error_messages %> - -<% for attribute in attributes -%> -

- <%%= f.label :<%= attribute.name %> %>
- <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %> -

-<% end -%> -

- <%%= f.submit 'Create' %> -

-<%% end %> +<%%= render :partial => "form" %> <%%= link_to 'Back', <%= plural_name %>_path %> \ No newline at end of file diff --git a/railties/test/generators/rails_scaffold_generator_test.rb b/railties/test/generators/rails_scaffold_generator_test.rb index 70829a7..e1f8550 100644 --- a/railties/test/generators/rails_scaffold_generator_test.rb +++ b/railties/test/generators/rails_scaffold_generator_test.rb @@ -44,7 +44,7 @@ class RailsScaffoldGeneratorTest < GeneratorTestCase assert_generated_helper_for :products assert_generated_helper_test_for :products assert_generated_stylesheet :scaffold - assert_generated_views_for :products, "index.html.erb", "new.html.erb", "edit.html.erb", "show.html.erb" + assert_generated_views_for :products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb","_form.html.erb" assert_generated_migration :create_products assert_added_route_for :products @@ -60,7 +60,7 @@ class RailsScaffoldGeneratorTest < GeneratorTestCase assert_generated_helper_for :products assert_generated_helper_test_for :products assert_generated_stylesheet :scaffold - assert_generated_views_for :products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb" + assert_generated_views_for :products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb","_form.html.erb" assert_skipped_migration :create_products assert_added_route_for :products end @@ -96,7 +96,7 @@ class RailsScaffoldGeneratorTest < GeneratorTestCase assert_generated_helper_for :products assert_generated_helper_test_for :products assert_generated_stylesheet :scaffold - assert_generated_views_for :products, "index.html.erb", "new.html.erb", "edit.html.erb", "show.html.erb" + assert_generated_views_for :products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb","_form.html.erb" assert_generated_migration :create_products do |t| assert_generated_column t, :name, :string @@ -128,7 +128,7 @@ class RailsScaffoldGeneratorTest < GeneratorTestCase assert_generated_helper_for :products assert_generated_helper_test_for :products assert_generated_stylesheet :scaffold - assert_generated_views_for :products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb" + assert_generated_views_for :products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb","_form.html.erb" assert_skipped_migration :create_products assert_added_route_for :products end @@ -143,7 +143,7 @@ class RailsScaffoldGeneratorTest < GeneratorTestCase assert_generated_helper_for :products assert_generated_helper_test_for :products assert_generated_stylesheet :scaffold - assert_generated_views_for :products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb" + assert_generated_views_for :products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb","_form.html.erb" assert_skipped_migration :create_products assert_added_route_for :products end -- 1.6.0.6