rails app运行时错误报告不同版本的action pack gem而不是bundle install installs

问题描述 投票:0回答:1

升级到OS X 10.14后,我的rails应用程序不再有效。我想弄明白为什么。我在一行尝试将@secret分配给cipher.key时,得到了active_support_(5.0.0.1)_lib / active_support / message_encryptor.rb引发的异常。例外情况说密钥必须是32个字节。

在我试图解决的这一点上,我想知道为什么从应用程序目录运行bundle install报告它正在安装activesupport 5.0.7.2,但是当应用程序运行时(通过puma),activesupport 5.0.0.1中的代码抛出异常。 rvm是我的ruby版本管理器。它报告它正在运行ruby 2.4.1(这是我在升级之前安装的版本)。我认为OS X 10.14附带2.3.7,但这似乎不是问题。 Rails版本为5.0.0.1。我以为我会尝试将Rails更新为5.0.7.2。我阅读了升级Ruby on Rails页面并修改了我的Gemfile来指定rails~ = 5.0.7(用于说〜> 5.0.2),然后运行rake rails :: update会产生一个错误,说'你已经激活了rake 12.3 .2但你的Gemfile需要rake 11.3.0。'。我在Gemfile中找不到rake的引用。 boot.rb在require'bundler / setup'上抛出该错误。

我希望有人能够告诉我如何将rails更新到更新的版本,希望这样做,我的初始问题将消失。服务器日志的完整堆栈:

ArgumentError (key must be 32 bytes):

activesupport (5.0.0.1) lib/active_support/message_encryptor.rb:72:in `key='
activesupport (5.0.0.1) lib/active_support/message_encryptor.rb:72:in `_encrypt'
activesupport (5.0.0.1) lib/active_support/message_encryptor.rb:58:in `encrypt_and_sign'
actionpack (5.0.0.1) lib/action_dispatch/middleware/cookies.rb:592:in `commit'
actionpack (5.0.0.1) lib/action_dispatch/middleware/cookies.rb:465:in `[]='
actionpack (5.0.0.1) lib/action_dispatch/middleware/session/cookie_store.rb:117:in `set_cookie'
rack (2.0.1) lib/rack/session/abstract/id.rb:353:in `commit_session'
rack (2.0.1) lib/rack/session/abstract/id.rb:224:in `context'
rack (2.0.1) lib/rack/session/abstract/id.rb:216:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/cookies.rb:613:in `call'
activerecord (5.0.0.1) lib/active_record/migration.rb:552:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
activesupport (5.0.0.1) lib/active_support/callbacks.rb:97:in `__run_callbacks__'
activesupport (5.0.0.1) lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
activesupport (5.0.0.1) lib/active_support/callbacks.rb:90:in `run_callbacks'
actionpack (5.0.0.1) lib/action_dispatch/middleware/callbacks.rb:36:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
web-console (3.4.0) lib/web_console/middleware.rb:135:in `call_app'
web-console (3.4.0) lib/web_console/middleware.rb:28:in `block in call'
web-console (3.4.0) lib/web_console/middleware.rb:18:in `catch'
web-console (3.4.0) lib/web_console/middleware.rb:18:in `call'
actionpack (5.0.0.1) > lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
railties (5.0.0.1) lib/rails/rack/logger.rb:36:in `call_app'
railties (5.0.0.1) lib/rails/rack/logger.rb:24:in `block in call'
activesupport (5.0.0.1) lib/active_support/tagged_logging.rb:70:in `block in tagged'
activesupport (5.0.0.1) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (5.0.0.1) lib/active_support/tagged_logging.rb:70:in `tagged'
railties (5.0.0.1) lib/rails/rack/logger.rb:24:in `call'
sprockets-rails (3.2.0) lib/sprockets/rails/quiet_assets.rb:13:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/request_id.rb:24:in `call'
rack (2.0.1) lib/rack/method_override.rb:22:in `call'
rack (2.0.1) lib/rack/runtime.rb:22:in `call'
activesupport (5.0.0.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/static.rb:136:in `call'
rack (2.0.1) lib/rack/sendfile.rb:111:in `call'
railties (5.0.0.1) lib/rails/engine.rb:522:in `call'
puma (3.12.0) lib/puma/configuration.rb:225:in `call'
puma (3.12.0) lib/puma/server.rb:658:in `handle_request'
puma (3.12.0) lib/puma/server.rb:472:in `process_client'
puma (3.12.0) lib/puma/server.rb:332:in `block in run'
puma (3.12.0) lib/puma/thread_pool.rb:133:in `block in spawn_thread'
  Rendering /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout
  Rendering /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
  Rendered /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (1.8ms)
  Rendering /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
  Rendered /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.1ms)
  Rendering /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
  Rendered /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (0.6ms)
  Rendered /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (84.1ms)
Started PUT "/__web_console/repl_sessions/2b97efeccea3498fd96b79db013b3da9" for 127.0.0.1 at 2019-03-26 10:59:35 -0400
Started PUT "/__web_console/repl_sessions/2b97efeccea3498fd96b79db013b3da9" for 127.0.0.1 at 2019-03-26 10:59:36 -0400

来自Gemfile.lock:

    actioncable (5.0.7.2)
      actionpack (= 5.0.7.2)
      nio4r (>= 1.2, < 3.0)
      websocket-driver (~> 0.6.1)
    actionmailer (5.0.7.2)
      actionpack (= 5.0.7.2)
      actionview (= 5.0.7.2)
      activejob (= 5.0.7.2)
      mail (~> 2.5, >= 2.5.4)
      rails-dom-testing (~> 2.0)
    actionpack (5.0.7.2)
      actionview (= 5.0.7.2)
      activesupport (= 5.0.7.2)
      rack (~> 2.0)
      rack-test (~> 0.6.3)
      rails-dom-testing (~> 2.0)
      rails-html-sanitizer (~> 1.0, >= 1.0.2)
    actionview (5.0.7.2)
      activesupport (= 5.0.7.2)
      builder (~> 3.1)
      erubis (~> 2.7.0)
      rails-dom-testing (~> 2.0)
      rails-html-sanitizer (~> 1.0, >= 1.0.3)
    activejob (5.0.7.2)
      activesupport (= 5.0.7.2)
      globalid (>= 0.3.6)
    activemodel (5.0.7.2)
      activesupport (= 5.0.7.2)
    activerecord (5.0.7.2)
      activemodel (= 5.0.7.2)
      activesupport (= 5.0.7.2)
      arel (~> 7.0)
    activesupport (5.0.7.2)
      concurrent-ruby (~> 1.0, >= 1.0.2)
      i18n (>= 0.7, < 2)
      minitest (~> 5.1)
      tzinfo (~> 1.1)
.
.
.
    railties (5.0.7.2)
      actionpack (= 5.0.7.2)
      activesupport (= 5.0.7.2)
      method_source
      rake (>= 0.8.7)
      thor (>= 0.18.1, < 2.0)
    rake (12.3.2)
ruby-on-rails rake rvm
1个回答
0
投票

看起来不错的是它从你的堆栈跟踪它使用正确的ruby版本。好像是你的gemfile.lock说你被锁定在其他宝石中,为什么它没有运行它们? (activesupport 5.0.0.1而不是5.0.7.2)

我个人认为你需要捆绑更新/或删除锁并再次运行bundle install。或者追踪麻烦制造者的宝石并更新它们。也许甚至将ruby '2.4.1'放在你的gemfile中可能会锁定你的捆绑器以确保它使用正确的ruby版本。有一件事可能会帮助你找到使用那个旧耙子的宝石:gem dependency rake --reverse-dependencies How do I find out which gem has a specific dependency?然后搜索到rake 11.3.0然后看看它正在使用它。

你实际上有一个旧的错误已经被讨论过:https://github.com/rails/rails/issues/25185据说修复了:https://github.com/rails/rails/pull/25192

问题是为什么升级后你的rails表现得像是在运行5.0.0.1?我想知道你的2.4.1 rvm gems文件是否有新升级的宝石,或者你的捆绑包是否以某种方式将它们安装到不同的版本中。也许还要检查bundle show activesupport,看看跟踪引导回你的rvm 2.4.1文件夹。

这个人可能有一个可能的答案你回答了他自己的问题:Rails 5 production error activesupport

因此,升级到更高轨道的全面升级可能会为您节省成本。

希望其中一些能让你走上正确的道路!

© www.soinside.com 2019 - 2024. All rights reserved.