Skip to content

Commit 5d804e4

Browse files
committed
Use new params.expect syntax
1 parent 080ce0b commit 5d804e4

File tree

4 files changed

+42
-4
lines changed

4 files changed

+42
-4
lines changed

lib/generators/rails/templates/api_controller.rb

+6
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,19 @@ def destroy
4848
private
4949
# Use callbacks to share common setup or constraints between actions.
5050
def set_<%= singular_table_name %>
51+
<%- if Rails::VERSION::MAJOR >= 8 -%>
52+
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params.expect(:id)") %>
53+
<%- else -%>
5154
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
55+
<%- end -%>
5256
end
5357
5458
# Only allow a list of trusted parameters through.
5559
def <%= "#{singular_table_name}_params" %>
5660
<%- if attributes_names.empty? -%>
5761
params.fetch(<%= ":#{singular_table_name}" %>, {})
62+
<%- elsif Rails::VERSION::MAJOR >= 8 -%>
63+
params.expect(<%= singular_table_name %>: [ <%= permitted_params %> ])
5864
<%- else -%>
5965
params.require(<%= ":#{singular_table_name}" %>).permit(<%= permitted_params %>)
6066
<%- end -%>

lib/generators/rails/templates/controller.rb

+6
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,19 @@ def destroy
6565
private
6666
# Use callbacks to share common setup or constraints between actions.
6767
def set_<%= singular_table_name %>
68+
<%- if Rails::VERSION::MAJOR >= 8 -%>
69+
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params.expect(:id)") %>
70+
<%- else -%>
6871
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
72+
<%- end -%>
6973
end
7074
7175
# Only allow a list of trusted parameters through.
7276
def <%= "#{singular_table_name}_params" %>
7377
<%- if attributes_names.empty? -%>
7478
params.fetch(<%= ":#{singular_table_name}" %>, {})
79+
<%- elsif Rails::VERSION::MAJOR >= 8 -%>
80+
params.expect(<%= singular_table_name %>: [ <%= permitted_params %> ])
7581
<%- else -%>
7682
params.require(<%= ":#{singular_table_name}" %>).permit(<%= permitted_params %>)
7783
<%- end -%>

test/scaffold_api_controller_generator_test.rb

+15-2
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,17 @@ class ScaffoldApiControllerGeneratorTest < Rails::Generators::TestCase
3838
assert_match %r{@post\.destroy}, m
3939
end
4040

41+
assert_match %r{def set_post}, content
42+
if Rails::VERSION::MAJOR >= 8
43+
assert_match %r{params\.expect\(:id\)}, content
44+
else
45+
assert_match %r{params\[:id\]}, content
46+
end
47+
4148
assert_match %r{def post_params}, content
42-
if Rails::VERSION::MAJOR >= 6
49+
if Rails::VERSION::MAJOR >= 8
50+
assert_match %r{params\.expect\(post: \[ :title, :body, images: \[\] \]\)}, content
51+
elsif Rails::VERSION::MAJOR >= 6
4352
assert_match %r{params\.require\(:post\)\.permit\(:title, :body, images: \[\]\)}, content
4453
else
4554
assert_match %r{params\.require\(:post\)\.permit\(:title, :body, :images\)}, content
@@ -62,7 +71,11 @@ class ScaffoldApiControllerGeneratorTest < Rails::Generators::TestCase
6271
run_generator ["Message", "content:rich_text", "video:attachment", "photos:attachments"]
6372

6473
assert_file 'app/controllers/messages_controller.rb' do |content|
65-
assert_match %r{params\.require\(:message\)\.permit\(:content, :video, photos: \[\]\)}, content
74+
if Rails::VERSION::MAJOR >= 8
75+
assert_match %r{params\.expect\(message: \[ :content, :video, photos: \[\] \]\)}, content
76+
else
77+
assert_match %r{params\.require\(:message\)\.permit\(:content, :video, photos: \[\]\)}, content
78+
end
6679
end
6780
end
6881
end

test/scaffold_controller_generator_test.rb

+15-2
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,17 @@ class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase
5050
assert_match %r{format\.json \{ head :no_content \}}, m
5151
end
5252

53+
assert_match %r{def set_post}, content
54+
if Rails::VERSION::MAJOR >= 8
55+
assert_match %r{params\.expect\(:id\)}, content
56+
else
57+
assert_match %r{params\[:id\]}, content
58+
end
59+
5360
assert_match %r{def post_params}, content
54-
if Rails::VERSION::MAJOR >= 6
61+
if Rails::VERSION::MAJOR >= 8
62+
assert_match %r{params\.expect\(post: \[ :title, :body, images: \[\] \]\)}, content
63+
elsif Rails::VERSION::MAJOR >= 6
5564
assert_match %r{params\.require\(:post\)\.permit\(:title, :body, images: \[\]\)}, content
5665
else
5766
assert_match %r{params\.require\(:post\)\.permit\(:title, :body, :images\)}, content
@@ -92,7 +101,11 @@ class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase
92101
run_generator %w(Message content:rich_text video:attachment photos:attachments)
93102

94103
assert_file 'app/controllers/messages_controller.rb' do |content|
95-
assert_match %r{params\.require\(:message\)\.permit\(:content, :video, photos: \[\]\)}, content
104+
if Rails::VERSION::MAJOR >= 8
105+
assert_match %r{params\.expect\(message: \[ :content, :video, photos: \[\] \]\)}, content
106+
else
107+
assert_match %r{params\.require\(:message\)\.permit\(:content, :video, photos: \[\]\)}, content
108+
end
96109
end
97110
end
98111
end

0 commit comments

Comments
 (0)