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
}
我唯一的办法就是更新我的主密钥。
- 复制您的解密凭据
- 删除文件
- 重新生成密钥
- 读取数据
您需要向您的项目负责人/团队负责人/同事索要万能钥匙。
使用像 3823729sdad29323832idsd 这样的长密钥,将其复制并粘贴到 config 文件夹下的 master.key 文件中。
那就解决问题了。
- 删除凭据:
rm -rf config/credentials.yml.enc
- 创建新凭据:
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:edit
或 EDITOR="code --wait" bin/rails credentials:edit
生成新的 master.key
和 credentials.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
请帮助我,我已经完成了 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)
此外,我已阅读此主题
这也是我的生产配置:
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
}
我唯一的办法就是更新我的主密钥。
- 复制您的解密凭据
- 删除文件
- 重新生成密钥
- 读取数据
您需要向您的项目负责人/团队负责人/同事索要万能钥匙。
使用像 3823729sdad29323832idsd 这样的长密钥,将其复制并粘贴到 config 文件夹下的 master.key 文件中。
那就解决问题了。
- 删除凭据:
rm -rf config/credentials.yml.enc
- 创建新凭据:
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:edit
或 EDITOR="code --wait" bin/rails credentials:edit
生成新的 master.key
和 credentials.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