diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-12-09 15:53:23 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-12-10 00:01:41 -0300 |
commit | 80735ff4c059d634e5eb3a83ce6a0bb8bda5cd8e (patch) | |
tree | 73bb105d779bbfa4588177aa7c3c599c503d7b26 | |
parent | b05b77be9caf2617f35d93786d9b40c17e07bf64 (diff) | |
download | rails-80735ff4c059d634e5eb3a83ce6a0bb8bda5cd8e.tar.gz rails-80735ff4c059d634e5eb3a83ce6a0bb8bda5cd8e.tar.bz2 rails-80735ff4c059d634e5eb3a83ce6a0bb8bda5cd8e.zip |
Extract a attributes_names method to avoid duplication
4 files changed, 12 insertions, 22 deletions
diff --git a/railties/lib/rails/generators/named_base.rb b/railties/lib/rails/generators/named_base.rb index cc10fd9177..25d3f5518f 100644 --- a/railties/lib/rails/generators/named_base.rb +++ b/railties/lib/rails/generators/named_base.rb @@ -160,6 +160,13 @@ module Rails end end + def attributes_names + @attributes_names ||= attributes.each_with_object([]) do |a, names| + names << (a.reference? ? "#{a.name}_id" : a.name) + names << "#{a.name}_type" if a.polymorphic? + end + end + def pluralize_table_names? !defined?(ActiveRecord::Base) || ActiveRecord::Base.pluralize_table_names end diff --git a/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb b/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb index 3cfd2233e2..4f36b612ae 100644 --- a/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +++ b/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb @@ -22,15 +22,6 @@ module Rails hook_for :helper, as: :scaffold do |invoked| invoke invoked, [ controller_name ] end - - private - - def attributes_names - attributes.each_with_object([]) do |attribute, names| - names << (attribute.reference? ? ":#{attribute.name}_id" : ":#{attribute.name}") - names << ":#{attribute.name}_type" if attribute.polymorphic? - end - end end end end diff --git a/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb b/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb index 078ca3a996..4d08b01e60 100644 --- a/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb +++ b/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb @@ -94,7 +94,7 @@ class <%= controller_class_name %>Controller < ApplicationController <%- if attributes_names.empty? -%> params[<%= ":#{singular_table_name}" %>] <%- else -%> - params.require(<%= ":#{singular_table_name}" %>).permit(<%= attributes_names.join(', ') %>) + params.require(<%= ":#{singular_table_name}" %>).permit(<%= attributes_names.map { |name| ":#{name}" }.join(', ') %>) <%- end -%> end end diff --git a/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb b/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb index 08bf50dfe2..8f3ecaadea 100644 --- a/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +++ b/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb @@ -18,19 +18,11 @@ module TestUnit # :nodoc: private def attributes_hash - return if attributes.empty? + return if attributes_names.empty? - hash_values = [] - attributes.each do |a| - hash_values << hash_value(a.reference? ? "#{a.name}_id" : a.name) - hash_values << hash_value("#{a.name}_type") if a.polymorphic? - end - - hash_values.sort.join(', ') - end - - def hash_value(name) - "#{name}: @#{singular_table_name}.#{name}" + attributes_names.map do |name| + "#{name}: @#{singular_table_name}.#{name}" + end.sort.join(', ') end end end |