Rails: ActiveSupport::MessageEncryptor::InvalidMessage

Rails: ActiveSupport::MessageEncryptor::InvalidMessage

请帮助我,我已经完成了 rails 教程的 11 章,将我的应用程序部署到 heroku(在本地它运行良好)并且它一直崩溃。我正在使用 rails 5.2.2 在执行命令 $heroku 运行 rails console 后,我收到了这个:

Traceback (most recent call last):
    92: from /app/bin/rails:9:in `<main>'
    91: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require'
    90: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'
    89: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `block in require'
    88: from /app/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
    87: from /app/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
    86: from /app/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
    85: from /app/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'
    84: from /app/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
    83: from /app/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/commands.rb:18:in `<main>'
    82: from /app/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/command.rb:46:in `invoke'
    81: from /app/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/command/base.rb:65:in `perform'
    80: from /app/vendor/bundle/ruby/2.5.0/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
     6: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:21:in `read'
     5: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_file.rb:42:in `read'
     4: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_file.rb:79:in `decrypt'
     3: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/messages/rotator.rb:21:in `decrypt_and_verify'
     2: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:157:in `decrypt_and_verify'
     1: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:183:in `_decrypt'
/app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:206:in `rescue in _decrypt': ActiveSupport::MessageEncryptor::InvalidMessage (ActiveSupport::MessageEncryptor::InvalidMessage)

此外,我已阅读此主题 ,但未在我的电脑上找到文件 master.key 和 credentials.yml.enc。

这也是我的生产配置:

Rails.application.configure do
  # Settings specified here will take precedence over those in config/application.rb.

  # Code is not reloaded between requests.
  config.cache_classes = true

  # Eager load code on boot. This eager loads most of Rails and
  # your application in memory, allowing both threaded web servers
  # and those relying on copy on write to perform better.
  # Rake tasks automatically ignore this option for performance.
  config.eager_load = true

  # Full error reports are disabled and caching is turned on.
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true

  # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
  # or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
  # config.require_master_key = true

  # Disable serving static files from the `/public` folder by default since
  # Apache or NGINX already handles this.
  config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?

  # Compress JavaScripts and CSS.
  config.assets.js_compressor = :uglifier
  # config.assets.css_compressor = :sass

  # Do not fallback to assets pipeline if a precompiled asset is missed.
  config.assets.compile = false

  # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb

  # Enable serving of images, stylesheets, and JavaScripts from an asset server.
  # config.action_controller.asset_host = 'http://assets.example.com'

  # Specifies the header that your server uses for sending files.
  # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX

  # Store uploaded files on the local file system (see config/storage.yml for options)
  config.active_storage.service = :local

  # Mount Action Cable outside main process or domain
  # config.action_cable.mount_path = nil
  # config.action_cable.url = 'wss://example.com/cable'
  # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]

  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
  config.force_ssl = true

  # Use the lowest log level to ensure availability of diagnostic information
  # when problems arise.
  config.log_level = :debug

  # Prepend all log lines with the following tags.
  config.log_tags = [ :request_id ]

  # Use a different cache store in production.
  # config.cache_store = :mem_cache_store

  # Use a real queuing backend for Active Job (and separate queues per environment)
  # config.active_job.queue_adapter     = :resque
  # config.active_job.queue_name_prefix = "sample_app_#{Rails.env}"

  config.action_mailer.perform_caching = false

  # Ignore bad email addresses and do not raise email delivery errors.
  # Set this to true and configure the email server for immediate delivery to raise delivery errors.
  # config.action_mailer.raise_delivery_errors = false

  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
  # the I18n.default_locale when a translation cannot be found).
  config.i18n.fallbacks = true

  # Send deprecation notices to registered listeners.
  config.active_support.deprecation = :notify

  # Use default logging formatter so that PID and timestamp are not suppressed.
  config.log_formatter = ::Logger::Formatter.new

  # Use a different logger for distributed setups.
  # require 'syslog/logger'
  # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')

  if ENV["RAILS_LOG_TO_STDOUT"].present?
    logger           = ActiveSupport::Logger.new(STDOUT)
    logger.formatter = config.log_formatter
    config.logger    = ActiveSupport::TaggedLogging.new(logger)
  end

  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  host = 'calm-spire-36002.herokuapp.com'
  config.action_mailer.default_url_options = { host: host }
  ActionMailer::Base.smtp_settings = {
    :address        => 'smtp.sendgrid.net',
    :port           => '587',
    :authentication => :plain,
    :user_name      => ENV['SENDGRID_USERNAME'],
    :password       => ENV['SENDGRID_PASSWORD'],
    :domain         => 'heroku.com',
    :enable_starttls_auto => true
  }

  # Do not dump schema after migrations.
  config.active_record.dump_schema_after_migration = false
end

我在部署到 heroku 时收到这些错误:

Counting objects: 23, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (23/23), done.
Writing objects: 100% (23/23), 2.17 KiB | 1.08 MiB/s, done.
Total 23 (delta 16), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.5.3
remote: -----> Installing dependencies using bundler 1.15.2
remote:        Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote:        Your Gemfile lists the gem pg (>= 0) more than once.
remote:        You should probably keep only one of them.
remote:        While it's not a problem now, it could cause errors if you change the version of one of them later.
remote:        Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.17.2). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote:        Fetching gem metadata from https://rubygems.org/.........
remote:        Fetching version metadata from https://rubygems.org/..
remote:        Fetching dependency metadata from https://rubygems.org/.
remote:        Using rake 12.3.2
remote:        Using concurrent-ruby 1.1.4
remote:        Using minitest 5.11.3
remote:        Using thread_safe 0.3.6
remote:        Using builder 3.2.3
remote:        Using erubi 1.8.0
remote:        Using mini_portile2 2.4.0
remote:        Using crass 1.0.4
remote:        Using rack 2.0.6
remote:        Using nio4r 2.3.1
remote:        Using websocket-extensions 0.1.3
remote:        Using mini_mime 1.0.1
remote:        Using arel 9.0.0
remote:        Using mimemagic 0.3.3
remote:        Using execjs 2.7.0
remote:        Using bcrypt 3.1.12
remote:        Using msgpack 1.2.6
remote:        Using rb-fsevent 0.10.3
remote:        Using ffi 1.10.0
remote:        Using will_paginate 3.1.6
remote:        Using bundler 1.15.2
remote:        Using coffee-script-source 1.12.2
remote:        Using method_source 0.9.2
remote:        Using thor 0.20.3
remote:        Using multi_json 1.13.1
remote:        Using pg 1.1.4
remote:        Using puma 3.12.0
remote:        Using tilt 2.0.9
remote:        Using turbolinks-source 5.2.0
remote:        Using tzinfo 1.2.5
remote:        Using nokogiri 1.10.0
remote:        Using rack-test 1.1.0
remote:        Using i18n 0.9.5
remote:        Using sprockets 3.7.2
remote:        Using websocket-driver 0.7.0
remote:        Using autoprefixer-rails 9.4.4
remote:        Using uglifier 4.1.20
remote:        Using marcel 0.3.3
remote:        Using mail 2.7.1
remote:        Using rb-inotify 0.10.0
remote:        Using coffee-script 2.4.1
remote:        Using turbolinks 5.2.0
remote:        Using bootstrap-will_paginate 1.0.0
remote:        Using bootsnap 1.3.2
remote:        Using loofah 2.2.3
remote:        Using activesupport 5.2.2
remote:        Using faker 1.7.3
remote:        Using sass-listen 4.0.0
remote:        Using rails-html-sanitizer 1.0.4
remote:        Using sass 3.7.3
remote:        Using bootstrap-sass 3.3.7
remote:        Using rails-dom-testing 2.0.3
remote:        Using globalid 0.4.2
remote:        Using activemodel 5.2.2
remote:        Using jbuilder 2.8.0
remote:        Using activerecord 5.2.2
remote:        Using actionview 5.2.2
remote:        Using actionpack 5.2.2
remote:        Using activejob 5.2.2
remote:        Using actioncable 5.2.2
remote:        Using activestorage 5.2.2
remote:        Using railties 5.2.2
remote:        Using sprockets-rails 3.2.1
remote:        Using actionmailer 5.2.2
remote:        Using coffee-rails 4.2.2
remote:        Using jquery-rails 4.3.3
remote:        Using rails 5.2.2
remote:        Using sass-rails 5.0.7
remote:        Bundle complete! 31 Gemfile dependencies, 68 gems now installed.
remote:        Gems in the groups development and test were not installed.
remote:        Bundled gems are installed into ./vendor/bundle.
remote:        Bundle completed (3.30s)
remote:        Cleaning up the bundler cache.
remote:        Your Gemfile lists the gem pg (>= 0) more than once.
remote:        You should probably keep only one of them.
remote:        While it's not a problem now, it could cause errors if you change the version of one of them later.
remote:        Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.17.2). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote:        The latest bundler is 2.0.1, but you are currently running 1.15.2.
remote:        To update, run `gem install bundler`
remote: -----> Installing node-v10.14.1-linux-x64
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        rake aborted!
remote:        ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:206:in `rescue in _decrypt'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:183:in `_decrypt'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:157:in `decrypt_and_verify'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/messages/rotator.rb:21:in `decrypt_and_verify'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_file.rb:79:in `decrypt'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_file.rb:42:in `read'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:21:in `read'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:33:in `config'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:38:in `options'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/core_ext/module/delegation.rb:271:in `method_missing'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/config/environments/production.rb:100:in `block in <main>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/railtie.rb:216:in `instance_eval'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/railtie.rb:216:in `configure'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/config/environments/production.rb:1:in `<main>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `block in require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:602:in `block (2 levels) in <class:Engine>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:601:in `each'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:601:in `block in <class:Engine>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:32:in `instance_exec'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:32:in `run'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:61:in `block in run_initializers'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:50:in `each'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:50:in `tsort_each_child'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:60:in `run_initializers'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:361:in `initialize!'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/config/environment.rb:5:in `<main>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `block in require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:337:in `require_environment!'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:520:in `block in run_tasks_blocks'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/task.rb:62:in `block (2 levels) in define'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
remote:        
remote:        Caused by:
remote:        OpenSSL::Cipher::CipherError: 
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:201:in `final'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:201:in `_decrypt'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:157:in `decrypt_and_verify'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/messages/rotator.rb:21:in `decrypt_and_verify'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_file.rb:79:in `decrypt'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_file.rb:42:in `read'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:21:in `read'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:33:in `config'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:38:in `options'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/core_ext/module/delegation.rb:271:in `method_missing'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/config/environments/production.rb:100:in `block in <main>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/railtie.rb:216:in `instance_eval'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/railtie.rb:216:in `configure'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/config/environments/production.rb:1:in `<main>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `block in require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:602:in `block (2 levels) in <class:Engine>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:601:in `each'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:601:in `block in <class:Engine>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:32:in `instance_exec'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:32:in `run'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:61:in `block in run_initializers'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:50:in `each'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:50:in `tsort_each_child'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:60:in `run_initializers'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:361:in `initialize!'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/config/environment.rb:5:in `<main>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `block in require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:337:in `require_environment!'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:520:in `block in run_tasks_blocks'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/task.rb:62:in `block (2 levels) in define'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
remote:        Tasks: TOP => environment
remote:        (See full trace by running task with --trace)
remote: 
remote:  !
remote:  !     Precompiling assets failed.
remote:  !
remote:  !     Push rejected, failed to compile Ruby app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !   Push rejected to cryptic-chamber-73265.
remote: 
To heroku.com:cryptic-chamber-73265.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:cryptic-chamber-73265.git'

这里是 rails https://guides.rubyonrails.org/security.html#environmental-security

上的环境安全文档

在你的情况下,你应该有这些文件

config/master.key
config/credentials.yml.enc

删除这些文件,然后你可以用这个生成它们:

rails credentials:edit

现在文件 master.key 被版本控制忽略,因为它是 rails 用于解密 .enc 的密钥,只需提交 credentials.yml.enc 并将其推送到 heroku。

对于 heroku 上的 master.key,您可以在 heroku 应用程序上定义环境变量 RAILS_MASTER_KEY,并将 master.key 的值放在上面。

现在要访问您在 .enc 文件中定义的环境变量,您必须通过 Rails.application.credentials

访问它们
ActionMailer::Base.smtp_settings = {
    :address        => 'smtp.sendgrid.net',
    :port           => '587',
    :authentication => :plain,
    :user_name      => Rails.application.credentials.SENDGRID_USERNAME,
    :password       => Rails.application.credentials.SENDGRID_PASSWORD,
    :domain         => 'heroku.com',
    :enable_starttls_auto => true
}

我唯一的办法就是更新我的主密钥。

  1. 复制您的解密凭据
  2. 删除文件
  3. 重新生成密钥
  4. 读取数据

这个post帮帮我https://github.com/rails/rails/issues/32718

您需要向您的项目负责人/团队负责人/同事索要万能钥匙。

使用像 3823729sdad29323832idsd 这样的长密钥,将其复制并粘贴到 config 文件夹下的 master.key 文件中。

那就解决问题了。

  1. 删除凭据:
rm -rf config/credentials.yml.enc
  1. 创建新凭据:
  EDITOR="mate --wait" bin/rails credentials:edit

希望对您有所帮助。

我在 Ubuntu 20.04 中处理 Rails 6 应用程序时遇到了这个问题。

问题是我在 development.env 文件中 setting/specifying 一个错误的 RAILS_MASTER_KEY 环境变量(.env, .env.development).我只是想暂时将它用作占位符,因为我在 开发 环境中不需要它。

然后当我 运行 一个 rails 命令时抛出下面的错误,说 rails generate uploader ProductImage:

`rescue in _decrypt': ActiveSupport::MessageEncry ptor::InvalidMessage (ActiveSupport::MessageEncryptor::InvalidMessage)

即使我尝试使用 rails credentials:editEDITOR="code --wait" bin/rails credentials:edit 生成新的 master.keycredentials.yml.enc 文件,它也会抛出以下错误:

key=': key must be 16 bytes (ArgumentError)

修复方法如下:

您需要做的是在 .env 文件中提供正确的 RAILS_MASTER_KEY 环境变量,或者如果您不使用,则注释掉 RAILS_MASTER_KEY 环境变量它。

就是这样。

希望对您有所帮助

几分钟后我也遇到了同样的问题。另外,帮我想办法!基本上,我使用 android 设备在 Rails 应用程序上开发 Ruby。解决方案是: 转到应用程序配置目录。然后备份并删除以下文件:

master.key
credentials.yml.enc

然后转到终端或 android,转到 termux 并将命令写入应用程序目录(必须检查你是否在 rails 应用程序目录中):

$ EDITOR=nano rails credentials:edit

您还可以在桌面上使用其他编辑器,例如 Atom。现在将在终端或 termux 中创建一个新的 master.key 临时非加密凭据文件(对于 android 用户)。然后按“ctrl+x”,然后按“y”,然后按回车,然后临时未加密的凭证文件将被加密。现在尝试做你的工作。现在您可能会获得成功的输出。就这样。 快乐编码。

注意:我在撰写此答案时得到的一些帮助来自: https://github.com/rails/rails/issues/32718

我今天遇到了同样的问题,我发现我合并了新的credentials.yml.enc,所以我尝试打开 EDITOR="code . --wait" rails credentials:edit 得到此处列出错误。

我的解决方案只是删除文件末尾多余的空行,该行是在使用 vs 代码合并分支后添加的。

对我来说,这是因为环境变量(在 'Config Vars' 部分的 Heroku 设置页面中找到)持有一个过时的主密钥。

从 Rails 6 开始,每个环境都可以有凭据。因此,我拥有的生产凭证不同于开发凭证;并且这两个凭据都有自己的主密钥。

此处找到的文件:config/master.key,用于标准凭据文件:config/credentials.yml.enc。在此处找到的用于生产的凭据文件:config/credentials/production.yml.enc 使用在此处同一文件夹中找到的 production.key 加密:config/credentials/production.key.

我将 Config Vars 中 Heroku 中的密钥更新为新的 production.key 并且一切都已正确部署。

希望对您有所帮助。编码愉快!

*此外,我建议在更新任何配置变量后,在 Heroku 上重新启动您的测功机。这确保考虑到任何新的环境变量。

为此,单击任意页面右上角的 'More' 按钮,然后单击 'Restart all dynos'。

我的所有凭据都设置正确,但我忘记在 heroku 中设置主密钥。

如何在 heroku 上设置主密钥

转到/config/master.key,copy/paste文件中的主密钥然后像这样设置它:

heroku config:set RAILS_MASTER_KEY=c9102a13496fdc09430445a6602e3j85