1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

scaffold_controller: Include the routes when create a generator Controller

When is use a scaffold_controller add the routes as resources to the
config/route.rb

Also enable to use --skip-routes if doesn't want include the resources
into the config/routes.rb file.
This commit is contained in:
Rodrigo Ramírez Norambuena 2020-02-11 19:37:36 -03:00
parent 5bd29afeb4
commit 55b2264746
2 changed files with 24 additions and 0 deletions

View file

@ -15,6 +15,8 @@ module Rails
class_option :api, type: :boolean,
desc: "Generates API controller"
class_option :skip_routes, type: :boolean, desc: "Don't add routes to config/routes.rb."
argument :attributes, type: :array, default: [], banner: "field:type field:type"
def create_controller_files
@ -26,6 +28,10 @@ module Rails
invoke template_engine unless options.api?
end
hook_for :resource_route, required: true do |route|
invoke route unless options.skip_routes?
end
hook_for :test_framework, as: :scaffold
# Invoke the helper using the controller name (pluralized)

View file

@ -12,6 +12,8 @@ class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase
include GeneratorsTestHelper
arguments %w(User name:string age:integer)
setup :copy_routes
def test_controller_skeleton_is_created
run_generator
@ -98,6 +100,22 @@ class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase
end
end
def test_controller_route_are_added
run_generator ["Message", "photos:attachments"]
assert_file "config/routes.rb" do |route|
assert_match(/resources :messages$/, route)
end
end
def test_controller_route_are_skipped
run_generator ["Message", "photos:attachments", "--skip-routes"]
assert_file "config/routes.rb" do |route|
assert_no_match(/resources :messages$/, route)
end
end
def test_helper_are_invoked_with_a_pluralized_name
run_generator
assert_file "app/helpers/users_helper.rb", /module UsersHelper/