Class: RuboCop::Cop::Appdev::NoResourcefulRoutes

Inherits:
Base
  • Object
show all
Defined in:
lib/rubocop/cop/appdev/no_resourceful_routes.rb

Overview

Forbids ‘resources` and `resource` in `config/routes.rb`. Authors must write explicit verb-mapped routes so students see every URL, controller, and action spelled out.

‘root`, `namespace`, `scope`, `mount`, `match`, and the HTTP verb methods (`get`, `post`, `put`, `patch`, `delete`) are all allowed.

Scoped to ‘config/routes.rb` via `Include:` in default.yml.

Examples:

# bad
resources :movies
resource :profile

# good
get("/movies", { :controller => "movies", :action => "index" })
post("/insert_movie", { :controller => "movies", :action => "create" })

Constant Summary collapse

MSG =
"Don't use `%<method>s` in routes; write explicit verb mappings like `get(\"/...\", { :controller => \"...\", :action => \"...\" })`."
RESTRICT_ON_SEND =
[:resources, :resource].freeze

Instance Method Summary collapse

Instance Method Details

#on_send(node) ⇒ Object



26
27
28
# File 'lib/rubocop/cop/appdev/no_resourceful_routes.rb', line 26

def on_send(node)
  add_offense(node, message: format(MSG, method: node.method_name))
end