前提・実現したいこと
ここに質問の内容を詳しく書いてください。
production環境にgit clone、マイグレーション等を実施後、rails c -e productionで動作テストをしようとしましたがエラーで起動しません。
エラーメッセージ
/home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activerecord-5.2.1/lib/active_record/dynamic_matchers.rb:22:in `method_missing': undefined method `has_one_attached' for #<Class:0x0055ce04057a80> (NoMethodError) from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activestorage-5.2.1/app/models/active_storage/blob/representable.rb:7:in `block in <module:Representable>' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.1/lib/active_support/concern.rb:122:in `class_eval' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.1/lib/active_support/concern.rb:122:in `append_features' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activestorage-5.2.1/app/models/active_storage/blob.rb:23:in `include' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activestorage-5.2.1/app/models/active_storage/blob.rb:23:in `<class:Blob>' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activestorage-5.2.1/app/models/active_storage/blob.rb:16:in `<main>' ※ from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.3.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:50:in `load' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.3.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:50:in `load' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:472:in `block in load_file' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:657:in `new_constants_in' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:471:in `load_file' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:369:in `block in require_or_load' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:37:in `block in load_interlock' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies/interlock.rb:14:in `block in loading' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.1/lib/active_support/concurrency/share_lock.rb:151:in `exclusive' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies/interlock.rb:13:in `loading' 〜文字数制限のため中略〜 from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.2.1/lib/rails/application/finisher.rb:69:in `each' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.2.1/lib/rails/application/finisher.rb:69:in `block in <module:Finisher>' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.2.1/lib/rails/initializable.rb:32:in `instance_exec' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.2.1/lib/rails/initializable.rb:32:in `run' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.2.1/lib/rails/initializable.rb:61:in `block in run_initializers' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/2.4.0/tsort.rb:228:in `block in tsort_each' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/2.4.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/2.4.0/tsort.rb:431:in `each_strongly_connected_component_from' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/2.4.0/tsort.rb:349:in `block in each_strongly_connected_component' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/2.4.0/tsort.rb:347:in `each' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/2.4.0/tsort.rb:347:in `call' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/2.4.0/tsort.rb:347:in `each_strongly_connected_component' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/2.4.0/tsort.rb:226:in `tsort_each' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/2.4.0/tsort.rb:205:in `tsort_each' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.2.1/lib/rails/initializable.rb:60:in `run_initializers' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.2.1/lib/rails/application.rb:361:in `initialize!' from /var/www/rails/pwa_app/config/environment.rb:5:in `<main>' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.3.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.3.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.3.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.3.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.3.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in `block in require' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:253:in `load_dependency' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in `require' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/spring-2.0.2/lib/spring/application.rb:102:in `preload' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/spring-2.0.2/lib/spring/application.rb:153:in `serve' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/spring-2.0.2/lib/spring/application.rb:141:in `block in run' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/spring-2.0.2/lib/spring/application.rb:135:in `loop' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/spring-2.0.2/lib/spring/application.rb:135:in `run' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/spring-2.0.2/lib/spring/application/boot.rb:19:in `<top (required)>' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /home/admin/.rbenv/versions/2.4.1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require' from -e:1:in `<main>'
試したこと
①
https://github.com/rails/rails/issues/32933
こちらの情報をもとに、config/initializers内、config/application.rb、config/environment/production.rbを確認しました。
initializers内でモデルを呼び出しているのはこちらで追加したconfig/initializers/carrierwave.rbになりますがこちらを全てコメントアウトしてrails c -e productionを実行しても変わりませんでした。
ruby
1CarrierWave.configure do |config| 2 config.fog_credentials = { 3 provider: 'AWS', 4 aws_access_key_id: 'hoge', 5 aws_secret_access_key: 'hogehoge', 6 region: 'hogehogehoge' 7 } 8 config.fog_directory = 'hoge-backet' 9 config.asset_host = "https://hogehogehoge.com" 10 config.cache_storage = :fog 11 CarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:].\-+]/ 12end
initializersは基本的にデフォルトで、新規で追加したのは上記のcarrierwave.rbのみになります。
②active_storageの読み込みを無効化
active_storageを使用していないため、application.rb下記のように変更してactive_storageを無効化した結果、エラーが変化しました。
ruby
1//application.rb 2require_relative 'boot' 3require "rails/all" 4Bundler.require(*Rails.groups) 5module PwaApp 6 class Application < Rails::Application 7 config.load_defaults 5.2 8 config.time_zone = 'Tokyo' 9 config.active_record.default_timezone = :local 10 end 11end
ruby
1//application.rb 2require_relative 'boot' 3require "rails" 4require "active_model/railtie" 5require "active_job/railtie" 6require "active_record/railtie" 7require "action_controller/railtie" 8require "action_mailer/railtie" 9require "action_view/railtie" 10require "action_cable/engine" 11require "sprockets/railtie" 12require "rails/test_unit/railtie" 13 14module PwaApp 15 class Application < Rails::Application 16 #省略 17 end 18end
/home/ysuzuki/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activerecord-5.2.1/lib/active_record/dynamic_matchers.rb:22:in `method_missing': undefined method `mount_uploader' for #<Class:0x0055f614c70668> (NoMethodError) from /var/www/rails/pwa_app/app/models/catalog/product_image.rb:3:in `<class:ProductImage>' from /var/www/rails/pwa_app/app/models/catalog/product_image.rb:2:in `<module:Catalog>' from /var/www/rails/pwa_app/app/models/catalog/product_image.rb:1:in `<main>' ここまで上記エラーの※と同一の内容
モデルのcarrierwaveのメソッドでエラーが起きるのですがstaging環境ではこちらで正常に動いていますので、メソッド名の誤りはないかと思います。
ruby
1//product_image.rb 2module Catalog 3 class ProductImage < Catalog::Base 4 mount_uploader :image, ProductImageUploader 5 belongs_to :product 6 end 7end
補足情報
ruby 2.4.1
rails 5.2.0
carrierwave 1.1.0
あなたの回答
tips
プレビュー