Skip to content

Instantly share code, notes, and snippets.

@rishiip rishiip/get-unused-routes.rb Secret
Created Oct 2, 2019

Embed
What would you like to do?
Gists for - Get unused routes of your Rails App
Rails.application.eager_load!
unused_routes = {}
# Iterating over all non-empty routes from RouteSet
Rails.application.routes.routes.map(&:requirements).reject(&:empty?).each do |route|
name = route[:controller].camelcase
next if name.start_with?("Rails")
controller = "#{name}Controller"
if Object.const_defined?(controller) && !controller.constantize.new.respond_to?(route[:action])
# Get route for which associated action is not present and add it in final results
unless Dir.glob(Rails.root.join("app", "views", name.downcase, "#{route[:action]}.*")).any?
unused_routes[controller] = [] if unused_routes[controller].nil?
unused_routes[controller] << route[:action]
end
end
end
puts unused_routes
# {"HomeController"=>["edit", "update", "update", "destroy"]}
Rails.application.routes.draw do
resources :users
end
HTTP Verb Path Controller#Action Used for
GET /users users#index Display a list of all users
GET /users/new users#new Return an HTML form for creating a new user
POST /users users#create Create a new user
GET /users/:id users#show Display a specific user
GET /users/:id/edit users#edit Return an HTML form for editing a user
PATCH/PUT /users/:id users#update Update a specific user
DELETE /users/:id users#destroy Delete a specific user
class UsersController < ApplicationController
def new
end
def create
end
def show
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.