Rails6以降でrails new直後にrake routes
を実行すると以下のような結果が表示されます。
~ 省略 ~
rails_postmark_inbound_emails POST /rails/action_mailbox/postmark/inbound_emails(.:format) action_mailbox/ingresses/postmark/inbound_emails#create
rails_relay_inbound_emails POST /rails/action_mailbox/relay/inbound_emails(.:format) action_mailbox/ingresses/relay/inbound_emails#create
rails_sendgrid_inbound_emails POST /rails/action_mailbox/sendgrid/inbound_emails(.:format) action_mailbox/ingresses/sendgrid/inbound_emails#create
rails_mandrill_inbound_health_check GET /rails/action_mailbox/mandrill/inbound_emails(.:format) action_mailbox/ingresses/mandrill/inbound_emails#health_check
rails_mandrill_inbound_emails POST /rails/action_mailbox/mandrill/inbound_emails(.:format) action_mailbox/ingresses/mandrill/inbound_emails#create
rails_mailgun_inbound_emails POST /rails/action_mailbox/mailgun/inbound_emails/mime(.:format) action_mailbox/ingresses/mailgun/inbound_emails#create
rails_conductor_inbound_emails GET /rails/conductor/action_mailbox/inbound_emails(.:format) rails/conductor/action_mailbox/inbound_emails#index
POST /rails/conductor/action_mailbox/inbound_emails(.:format) rails/conductor/action_mailbox/inbound_emails#create
new_rails_conductor_inbound_email GET /rails/conductor/action_mailbox/inbound_emails/new(.:format) rails/conductor/action_mailbox/inbound_emails#new
edit_rails_conductor_inbound_email GET /rails/conductor/action_mailbox/inbound_emails/:id/edit(.:format) rails/conductor/action_mailbox/inbound_emails#edit
rails_conductor_inbound_email GET /rails/conductor/action_mailbox/inbound_emails/:id(.:format) rails/conductor/action_mailbox/inbound_emails#show
PATCH /rails/conductor/action_mailbox/inbound_emails/:id(.:format) rails/conductor/action_mailbox/inbound_emails#update
~ 省略 ~
すべてのルーティングが表示されるので非常に便利なのですが、
メール機能などを実装しない場合には行数が増えて単純に見辛いだけなので非表示にする手順をまとめました。
デフォルトでルーティングに表示されるのはcontrollerのCRUD以外では以下のフレームワークのパスなので、こちらを非表示にする手順になります。
・action_mailer
・active_storage
環境
Rails 6.1.4
application.rb
application.rbはRails起動時に読み込まれる初期化プロセスが定義されています。
ここに作成するアプリケーションでは使用しないフレームワークを読み込まない記述を追加します。
全機能を読み込むrequire文を削除 or コメントアウトする
require_relative "boot"
require "rails/all" # ← この行を削除 or コメントアウトする
## 省略 ##
使用したいフレームワークのみ記述する
require 'rails/all'
では以下の機能が読み込まれています。参考: Railsガイド
ここから使用したいフレームワーク(action_mailer、active_storageを除く全て)のみrequire
で記述します。
"active_record/railtie"
"action_controller/railtie"
"action_view/railtie"
"action_mailer/railtie"
"active_job/railtie"
"action_cable/engine"
"active_storage/engine"
"rails/test_unit/railtie"
"sprockets/railtie"
記述例:
require_relative 'boot'
# require "rails/all"
require 'active_record/railtie'
require 'action_controller/railtie'
require 'action_view/railtie'
require 'active_job/railtie'
require 'action_cable/engine'
require 'rails/test_unit/railtie'
require 'sprockets/railtie'
/config/environments/*.rb
/config/environments/配下のファイルには各環境の設定を記述しているファイルが配置されています。
ファイル内にはconfig.action_mailer.perform_caching = false
といった形でapplication.rbで読み込まれたフレームワークの設定値が定義されているのでこれらを削除 or コメントアウトします。
エディタ等で/config/environments/フォルダ配下 action_mailer
active_storage
と検索すると漏れなく見つけることができると思います。
上記の作業が完了するとルーティングに表示されなくなっているはずです。rake routes
で確認してみてください。
参考
https://railsguides.jp/initialization.html
https://blog.naoshihoshi.com/entry/2020/03/20/123000