【问题标题】:Ruby on Rails - configuration issue/exception on OSX using Ruby 2.4.4 over rails 5.1.6Ruby on Rails - 在 OSX 上使用 Ruby 2.4.4 而不是 rails 5.1.6 的配置问题/异常
【发布时间】:2021-05-06 18:25:36
【问题描述】:

配置现有的 ruby​​ on rails 项目遇到一些奇怪的配置问题 - 似乎我缺少一些配置。

我在我的 MAC 机器上执行了以下某些步骤。

配置 Ruby 环境: => rbenv 安装 2.4.4 => rbenv 本地 2.4.4

  1. bundle 配置设置路径 ~/.bundle
  2. 捆绑安装
  3. npm 安装
  4. bundle exec rails server -b 0.0.0.0 -p 3001

bundle exec rails server -b 0.0.0.0 -p 3001 导致我无法找到原因的严重异常。

退出 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/deprecated-2.0.1/lib/deprecated.rb:176:in `instance_method': {:sanitize_conditions=>:sanitize_sql} 不是符号也不是字符串(类型错误) 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/deprecated-2.0.1/lib/deprecated.rb:176:in `block in' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/sanitization.rb:32:in `' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/sanitization.rb:5:in `' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/sanitization.rb:2:in `' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/sanitization.rb:1:in `' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `block in require' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:256:in `block in load_dependency' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:662:in `new_constants_in' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:256:in `load_dependency' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/base.rb:297:in `' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/base.rb:275:in `' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/base.rb:25:in `' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `block in require' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:256:in `block in load_dependency' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:662:in `new_constants_in' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:256:in `load_dependency' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require' 来自 /Users/xxxxxx/workspace/my-project/rails/app/models/cloud/entry.rb:2:in `' 来自 /Users/xxxxxx/workspace/my-project/rails/app/models/cloud/entry.rb:1:in `' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:477:in `load' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:477:in `block in load_file' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:662:in `new_constants_in' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:476:in `load_file' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:374:in `block in require_or_load' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:36:in `block in load_interlock' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies/interlock.rb:12:in `block in loading' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/concurrency/share_lock.rb:149:in `exclusive' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies/interlock.rb:11:in `loading' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:36:in `load_interlock' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:357:in `require_or_load' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:511:in `load_missing_constant' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:202:in `const_missing' 来自 /Users/xxxxxx/workspace/my-project/rails/test/factories/cloud/entries.rb:2:in `block in ' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/factory_bot-4.10.0/lib/factory_bot/syntax/default.rb:49:in `instance_eval' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/factory_bot-4.10.0/lib/factory_bot/syntax/default.rb:49:in `run' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/factory_bot-4.10.0/lib/factory_bot/syntax/default.rb:7:in `define' 来自 /Users/xxxxxx/workspace/my-project/rails/test/factories/cloud/entries.rb:1:in `' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:286:in `load' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:286:in `block in load' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:258:in `load_dependency' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:286:in `load' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/factory_bot-4.10.0/lib/factory_bot/find_definitions.rb:20:in `block (2 levels) in find_definitions' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/factory_bot-4.10.0/lib/factory_bot/find_definitions.rb:19:in `each' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/factory_bot-4.10.0/lib/factory_bot/find_definitions.rb:19:in `block in find_definitions' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/factory_bot-4.10.0/lib/factory_bot/find_definitions.rb:15:in `each' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/factory_bot-4.10.0/lib/factory_bot/find_definitions.rb:15:in `find_definitions' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/factory_bot_rails-4.10.0/lib/factory_bot_rails/railtie.rb:21:in `block in' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:67:in `block in execute_hook' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:60:in `with_execution_control' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:65:in `execute_hook' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:50:in `block in run_load_hooks' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:49:in `each' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:49:in `run_load_hooks' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/application/finisher.rb:73:in `block in' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/initializable.rb:30:in `instance_exec' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/initializable.rb:30:in `run' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/initializable.rb:59:in `block in run_initializers' 来自 /Users/xxxxxx/.rbenv/versions/2.4.4/lib/ruby/2.4.0/tsort.rb:228:in `block in tsort_each' 来自 /Users/xxxxxx/.rbenv/versions/2.4.4/lib/ruby/2.4.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component' 来自 /Users/xxxxxx/.rbenv/versions/2.4.4/lib/ruby/2.4.0/tsort.rb:431:in `each_strongly_connected_component_from' 来自 /Users/xxxxxx/.rbenv/versions/2.4.4/lib/ruby/2.4.0/tsort.rb:349:in `block in each_strongly_connected_component' 来自 /Users/xxxxxx/.rbenv/versions/2.4.4/lib/ruby/2.4.0/tsort.rb:347:in `each' 来自 /Users/xxxxxx/.rbenv/versions/2.4.4/lib/ruby/2.4.0/tsort.rb:347:in `call' 来自 /Users/xxxxxx/.rbenv/versions/2.4.4/lib/ruby/2.4.0/tsort.rb:347:in `each_strongly_connected_component' 来自 /Users/xxxxxx/.rbenv/versions/2.4.4/lib/ruby/2.4.0/tsort.rb:226:in `tsort_each' 来自 /Users/xxxxxx/.rbenv/versions/2.4.4/lib/ruby/2.4.0/tsort.rb:205:in `tsort_each' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/initializable.rb:58:in `run_initializers' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/application.rb:353:in `initialize!' 来自 /Users/xxxxxx/workspace/my-project/rails/config/environment.rb:5:in `' 来自 config.ru:3:in `require' 来自 config.ru:3:in `block in ' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/rack-2.0.7/lib/rack/builder.rb:55:in `instance_eval' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/rack-2.0.7/lib/rack/builder.rb:55:in `initialize' 来自 config.ru:in `new' 来自 config.ru:in `' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/rack-2.0.7/lib/rack/builder.rb:49:in `eval' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/rack-2.0.7/lib/rack/builder.rb:49:in `new_from_string' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/rack-2.0.7/lib/rack/builder.rb:40:in `parse_file' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/rack-2.0.7/lib/rack/server.rb:319:in `build_app_and_options_from_config' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/rack-2.0.7/lib/rack/server.rb:219:in `app' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:24:in `app' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/rack-2.0.7/lib/rack/server.rb:354:in `wrapped_app' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:80:in `log_to_stdout' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:42:in `start' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:135:in `block in perform' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:130:in `tap' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/commands/server/server_command.rb:130:in `perform' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor/command.rb:27:in `run' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/command/base.rb:63:in `perform' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/command.rb:44:in `invoke' 来自 /Users/xxxxxx/.bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/commands.rb:16:in `' 从 bin/rails:4:in `require' 从 bin/rails:4:in `'

【问题讨论】:

  • 错误信息显示问题出在app/models/cloud/entry.rb 的第 2 行。那里有什么?
  • 我不确定上面提到的deprecated gem 是什么,但如果是this,请注意这个版本是2009 年发布的; long 早于 ruby​​ 2.4 存在。可能因为您尝试在比以前更新的 ruby​​ 版本上运行项目而发生此错误?
  • app/models/cloud/entry.rb的起始行是>>>>>模块云类Entry<:base>
  • 我猜你必须更改了 something 的版本,这样做会引入这个冲突,但我不确定是什么那个变化是。我最好的猜测是ActiveRecord 的版本已经更新,因为that change 是在早期版本的rails 上引入的。
  • 尝试在Gemfile.lock 中通过关键字depecated 搜索使用gem deprecated 的人,然后从Gemfile 中删除gem。 rails 中不应该有 gem deprecated

标签: ruby-on-rails ruby macos rubygems


【解决方案1】:

需要通过执行命令 bundle remove $DEPRECATED_GEMS 来删除/升级在我的 Gemfile.lock 中有 deprecated 关键字的 gem。

在我的情况下,很少有已弃用的宝石,例如, dbd_odbc、ruby_odbc

最初@itsnikolay 为我的问题提供了这个解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多