概要
Rails6導入されたAction Mailboxは受信したメールをコントローラに似たメールボックスにルーティングし、Railsで処理できるようにする機能です。
非常に便利な機能ですし、Railsのプロジェクトを作り始めた直後から使い始めることが可能です。
rails new直後にrake routes
でルーティングを確認すると下記のような結果が得られます。
$ bundle exec rake routes rails_mandrill_inbound_emails POST /rails/action_mailbox/mandrill/inbound_emails(.:format) action_mailbox/ingresses/mandrill/inbound_emails#create 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_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 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 PUT /rails/conductor/action_mailbox/inbound_emails/:id(.:format) rails/conductor/action_mailbox/inbound_emails#update DELETE /rails/conductor/action_mailbox/inbound_emails/:id(.:format) rails/conductor/action_mailbox/inbound_emails#destroy rails_conductor_inbound_email_reroute POST /rails/conductor/action_mailbox/:inbound_email_id/reroute(.:format) rails/conductor/action_mailbox/reroutes#create rails_service_blob GET /rails/active_storage/blobs/:signed_id/*filename(.:format) active_storage/blobs#show rails_blob_representation GET /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show rails_disk_service GET /rails/active_storage/disk/:encoded_key/*filename(.:format) active_storage/disk#show update_rails_disk_service PUT /rails/active_storage/disk/:encoded_token(.:format) active_storage/disk#update rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format) active_storage/direct_uploads#create
しかし、受信したメールを処理する必要がないシステムにとっては不要なものになります。
今回は、このデフォルトで設定されたRails6で追加されたAction Mailboxをルーティングから消す方法を書きます。
併せて、/rails/active_storage/**
を消す方法も書きます。
config/application.rb の変更
config/application.rb
を開くと、色々な物がrequire
されていることがわかります。
このなかから以下を消します。
- active_storage/engine
- action_mailbox/engine
- action_text/engine
--- a/config/application.rb +++ b/config/application.rb @@ -5,11 +5,11 @@ require "rails" require "active_model/railtie" require "active_job/railtie" require "active_record/railtie" -require "active_storage/engine" +#require "active_storage/engine" require "action_controller/railtie" require "action_mailer/railtie" -require "action_mailbox/engine" -require "action_text/engine" +#require "action_mailbox/engine" +#require "action_text/engine" require "action_view/railtie" require "action_cable/engine" # require "sprockets/railtie"
上記の修正で、action_mailbox
のルーティング設定は消えます。
config/environments/配下のファイルの修正
次に、config/environments/配下のファイルを修正します。
各環境の設定ファイルにconfig.active_storage.service = :local
といった記述があるため、それを削除します。
config/environments/development.rb
を例にすると以下の修正を加えます。
--- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -26,7 +26,7 @@ Rails.application.configure do end # Store uploaded files on the local file system (see config/storage.yml for options). - config.active_storage.service = :local + # config.active_storage.service = :local
なぜこれを行う必要があるかというと、config/application.rb
でactive_storage/engine
を削除したため、
config.active_storage
を解決できなくなるためです。
まとめ
以上の変更を行い、再度rake routes
を実行します。
$ be rake routes You don't have any routes defined! Please add some routes in config/routes.rb. For more information about routes, see the Rails guide: https://guides.rubyonrails.org/routing.html.
ルーティングからaction_mailbox
とactive_storage
が消えましたね!