「NoMethodError: undefined method `active_storage' for ...」の原因と対処

2019年11月20日 12:55

    事象

    RSpecでテストしようとしたところ、以下のエラーが発生。
    $ rspec
    
    An error occurred while loading ./spec/models/user_spec.rb.
    Failure/Error: require File.expand_path('../config/environment', __dir__)
    
    NoMethodError:
      undefined method `active_storage' for #<Rails::Application::Configuration:0x00007ffa146729e0>

    原因

    使用していないActive Strorageを読み込もうとしているため。
    当該アプリではActive Storageは使わないため、config/application.rbを以下のように変更している。
    #require 'rails/all'                 # 既存の設定をコメントアウト
    require "rails"
    # Pick the frameworks you want:
    require "active_model/railtie"
    require "active_job/railtie"
    require "active_record/railtie"
    # require "active_storage/engine"    # Active Storageの読み込みをコメントアウト
    require "action_controller/railtie"
    require "action_mailer/railtie"
    require "action_view/railtie"
    require "action_cable/engine"
    require "sprockets/railtie"
    require "rails/test_unit/railtie"

    対処

    config/environment/test.rbを以下のように変更する。
      # Store uploaded files on the local file system in a temporary directory
      #config.active_storage.service = :test     # コメントアウト
    もしくは、config/application.rbの設定をもとに戻す。

    関連記事

    関連記事はありません。