diff --git a/lib/generators/rails/scaffold_controller_generator.rb b/lib/generators/rails/scaffold_controller_generator.rb index d372681..bf48f0c 100644 --- a/lib/generators/rails/scaffold_controller_generator.rb +++ b/lib/generators/rails/scaffold_controller_generator.rb @@ -7,6 +7,12 @@ class ScaffoldControllerGenerator source_paths << File.expand_path('../templates', __FILE__) hook_for :jbuilder, type: :boolean, default: true + + private + + def permitted_params + attributes_names.map { |name| ":#{name}" }.join(', ') + end unless private_method_defined? :permitted_params end end end diff --git a/lib/generators/rails/templates/api_controller.rb b/lib/generators/rails/templates/api_controller.rb index 8b7121a..dd98d3a 100644 --- a/lib/generators/rails/templates/api_controller.rb +++ b/lib/generators/rails/templates/api_controller.rb @@ -56,7 +56,7 @@ def <%= "#{singular_table_name}_params" %> <%- if attributes_names.empty? -%> params.fetch(<%= ":#{singular_table_name}" %>, {}) <%- else -%> - params.require(<%= ":#{singular_table_name}" %>).permit(<%= attributes_names.map { |name| ":#{name}" }.join(', ') %>) + params.require(<%= ":#{singular_table_name}" %>).permit(<%= permitted_params %>) <%- end -%> end end diff --git a/lib/generators/rails/templates/controller.rb b/lib/generators/rails/templates/controller.rb index 61ef48a..0ea817a 100644 --- a/lib/generators/rails/templates/controller.rb +++ b/lib/generators/rails/templates/controller.rb @@ -77,7 +77,7 @@ def <%= "#{singular_table_name}_params" %> <%- if attributes_names.empty? -%> params.fetch(<%= ":#{singular_table_name}" %>, {}) <%- else -%> - params.require(<%= ":#{singular_table_name}" %>).permit(<%= attributes_names.map { |name| ":#{name}" }.join(', ') %>) + params.require(<%= ":#{singular_table_name}" %>).permit(<%= permitted_params %>) <%- end -%> end end diff --git a/test/scaffold_api_controller_generator_test.rb b/test/scaffold_api_controller_generator_test.rb index eb65009..7dd7d26 100644 --- a/test/scaffold_api_controller_generator_test.rb +++ b/test/scaffold_api_controller_generator_test.rb @@ -6,7 +6,7 @@ class ScaffoldApiControllerGeneratorTest < Rails::Generators::TestCase tests Rails::Generators::ScaffoldControllerGenerator - arguments %w(Post title body:text --api) + arguments %w(Post title body:text images:attachments --api) destination File.expand_path('../tmp', __FILE__) setup :prepare_destination @@ -39,7 +39,11 @@ class ScaffoldApiControllerGeneratorTest < Rails::Generators::TestCase end assert_match %r{def post_params}, content - assert_match %r{params\.require\(:post\)\.permit\(:title, :body\)}, content + if Rails::VERSION::MAJOR >= 6 + assert_match %r{params\.require\(:post\)\.permit\(:title, :body, images: \[\]\)}, content + else + assert_match %r{params\.require\(:post\)\.permit\(:title, :body, :images\)}, content + end end end diff --git a/test/scaffold_controller_generator_test.rb b/test/scaffold_controller_generator_test.rb index 701aa68..89dcfaa 100644 --- a/test/scaffold_controller_generator_test.rb +++ b/test/scaffold_controller_generator_test.rb @@ -4,7 +4,7 @@ class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase tests Rails::Generators::ScaffoldControllerGenerator - arguments %w(Post title body:text) + arguments %w(Post title body:text images:attachments) destination File.expand_path('../tmp', __FILE__) setup :prepare_destination @@ -51,7 +51,11 @@ class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase end assert_match %r{def post_params}, content - assert_match %r{params\.require\(:post\)\.permit\(:title, :body\)}, content + if Rails::VERSION::MAJOR >= 6 + assert_match %r{params\.require\(:post\)\.permit\(:title, :body, images: \[\]\)}, content + else + assert_match %r{params\.require\(:post\)\.permit\(:title, :body, :images\)}, content + end end end