将 Rails 5.2 升级到 6.0 时出现参数错误数量错误

2024-05-28

我正在尝试将旧站点从 Rails5.2 升级到 6.0,然后再升级到 6.1 - 推荐的路径。

我收到了有关参数数量错误的各种错误,其中一些错误我已通过更新或删除各种 gem 设法清除。最后我被困在了这一点上:

.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/static.rb:110:in `initialize': wrong number of arguments (given 3, expected 2) (ArgumentError)

我该如何调试这个问题以及导致所有参数错误的根本问题是什么?

完整堆栈轨迹是:

/Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/static.rb:110:in `initialize': wrong number of arguments (given 3, expected 2) (ArgumentError)
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/stack.rb:37:in `new'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/stack.rb:37:in `build'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/stack.rb:131:in `block in build'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/stack.rb:127:in `each'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/stack.rb:127:in `inject'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/stack.rb:127:in `build'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/engine.rb:512:in `block in app'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/engine.rb:508:in `synchronize'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/engine.rb:508:in `app'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/application/finisher.rb:97:in `block in <module:Finisher>'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/initializable.rb:32:in `instance_exec'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/initializable.rb:32:in `run'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/initializable.rb:61:in `block in run_initializers'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/3.0.0/tsort.rb:228:in `block in tsort_each'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/3.0.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/3.0.0/tsort.rb:431:in `each_strongly_connected_component_from'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/3.0.0/tsort.rb:349:in `block in each_strongly_connected_component'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/3.0.0/tsort.rb:347:in `each'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/3.0.0/tsort.rb:347:in `call'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/3.0.0/tsort.rb:347:in `each_strongly_connected_component'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/3.0.0/tsort.rb:226:in `tsort_each'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/3.0.0/tsort.rb:205:in `tsort_each'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/initializable.rb:60:in `run_initializers'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/application.rb:363:in `initialize!'
    from /Users/will/Sites/projects/ggavatar/app/config/environment.rb:5:in `<top (required)>'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:34:in `require'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:34:in `require'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/activesupport-6.0.0/lib/active_support/dependencies.rb:325:in `block in require'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/activesupport-6.0.0/lib/active_support/dependencies.rb:291:in `load_dependency'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/activesupport-6.0.0/lib/active_support/dependencies.rb:325:in `require'
    from config.ru:3:in `block in <main>'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/rack-2.2.3/lib/rack/builder.rb:116:in `eval'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/rack-2.2.3/lib/rack/builder.rb:116:in `new_from_string'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/rack-2.2.3/lib/rack/builder.rb:105:in `load_file'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/rack-2.2.3/lib/rack/builder.rb:66:in `parse_file'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/rack-2.2.3/lib/rack/server.rb:349:in `build_app_and_options_from_config'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/rack-2.2.3/lib/rack/server.rb:249:in `app'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/rack-2.2.3/lib/rack/server.rb:422:in `wrapped_app'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/commands/server/server_command.rb:77:in `log_to_stdout'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/commands/server/server_command.rb:37:in `start'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/commands/server/server_command.rb:147:in `block in perform'
    from <internal:kernel>:90:in `tap'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/commands/server/server_command.rb:138:in `perform'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/command/base.rb:65:in `perform'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/command.rb:46:in `invoke'
    from /Users/will/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/railties-6.0.0/lib/rails/commands.rb:18:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

UPDATE

在上次修复后不久,这个问题再次爆发。相同的错误,但新的堆栈跟踪。我有一种感觉,这与 cookies_serializer 有关,但我可能是错的。我已根据导轨指南中的说明将其设置为混合。

ArgumentError (wrong number of arguments (given 2, expected 1)):
  
json (1.8.6) lib/json/common.rb:155:in `initialize'
json (1.8.6) lib/json/common.rb:155:in `new'
json (1.8.6) lib/json/common.rb:155:in `parse'
activesupport (6.0.3.5) lib/active_support/json/decoding.rb:23:in `decode'
actionpack (6.0.3.5) lib/action_dispatch/middleware/cookies.rb:507:in `load'
actionpack (6.0.3.5) lib/action_dispatch/middleware/cookies.rb:543:in `deserialize'
actionpack (6.0.3.5) lib/action_dispatch/middleware/cookies.rb:627:in `parse'
actionpack (6.0.3.5) lib/action_dispatch/middleware/cookies.rb:461:in `[]'
actionpack (6.0.3.5) lib/action_dispatch/middleware/session/cookie_store.rb:114:in `get_cookie'
actionpack (6.0.3.5) lib/action_dispatch/middleware/session/cookie_store.rb:89:in `block (2 levels) in unpacked_cookie_data'
actionpack (6.0.3.5) lib/action_dispatch/middleware/session/abstract_store.rb:53:in `stale_session_check!'
actionpack (6.0.3.5) lib/action_dispatch/middleware/session/cookie_store.rb:88:in `block in unpacked_cookie_data'
rack (2.2.3) lib/rack/request.rb:69:in `fetch'
rack (2.2.3) lib/rack/request.rb:69:in `fetch_header'
actionpack (6.0.3.5) lib/action_dispatch/middleware/session/cookie_store.rb:87:in `unpacked_cookie_data'
actionpack (6.0.3.5) lib/action_dispatch/middleware/session/cookie_store.rb:81:in `block in extract_session_id'
actionpack (6.0.3.5) lib/action_dispatch/middleware/session/abstract_store.rb:53:in `stale_session_check!'
actionpack (6.0.3.5) lib/action_dispatch/middleware/session/cookie_store.rb:80:in `extract_session_id'
actionpack (6.0.3.5) lib/action_dispatch/request/session.rb:54:in `block in id'
actionpack (6.0.3.5) lib/action_dispatch/request/session.rb:53:in `fetch'
actionpack (6.0.3.5) lib/action_dispatch/request/session.rb:53:in `id'
actionpack (6.0.3.5) lib/action_dispatch/request/session.rb:72:in `id'
rack (2.2.3) lib/rack/session/abstract/id.rb:329:in `current_session_id'
rack (2.2.3) lib/rack/session/abstract/id.rb:335:in `session_exists?'
actionpack (6.0.3.5) lib/action_dispatch/request/session.rb:203:in `exists?'
actionpack (6.0.3.5) lib/action_dispatch/request/session.rb:226:in `load_for_read!'
actionpack (6.0.3.5) lib/action_dispatch/request/session.rb:92:in `[]'
warden (1.2.9) lib/warden/session_serializer.rb:31:in `fetch'
warden (1.2.9) lib/warden/proxy.rb:224:in `user'
warden (1.2.9) lib/warden/proxy.rb:334:in `_perform_authentication'
warden (1.2.9) lib/warden/proxy.rb:110:in `authenticate'
warden (1.2.9) lib/warden/proxy.rb:120:in `authenticate?'
devise (4.7.3) app/controllers/devise_controller.rb:109:in `require_no_authentication'
activesupport (6.0.3.5) lib/active_support/callbacks.rb:428:in `block in make_lambda'
activesupport (6.0.3.5) lib/active_support/callbacks.rb:181:in `block (2 levels) in halting_and_conditional'
actionpack (6.0.3.5) lib/abstract_controller/callbacks.rb:34:in `block (2 levels) in <module:Callbacks>'
activesupport (6.0.3.5) lib/active_support/callbacks.rb:182:in `block in halting_and_conditional'
activesupport (6.0.3.5) lib/active_support/callbacks.rb:513:in `block in invoke_before'
activesupport (6.0.3.5) lib/active_support/callbacks.rb:513:in `each'
activesupport (6.0.3.5) lib/active_support/callbacks.rb:513:in `invoke_before'
activesupport (6.0.3.5) lib/active_support/callbacks.rb:134:in `run_callbacks'
actionpack (6.0.3.5) lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack (6.0.3.5) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (6.0.3.5) lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
activesupport (6.0.3.5) lib/active_support/notifications.rb:180:in `block in instrument'
activesupport (6.0.3.5) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.0.3.5) lib/active_support/notifications.rb:180:in `instrument'
actionpack (6.0.3.5) lib/action_controller/metal/instrumentation.rb:32:in `process_action'
actionpack (6.0.3.5) lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
activerecord (6.0.3.5) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (6.0.3.5) lib/abstract_controller/base.rb:136:in `process'
actionview (6.0.3.5) lib/action_view/rendering.rb:39:in `process'
actionpack (6.0.3.5) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (6.0.3.5) lib/action_controller/metal.rb:254:in `dispatch'
actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack (6.0.3.5) lib/action_dispatch/routing/mapper.rb:18:in `block in <class:Constraints>'
actionpack (6.0.3.5) lib/action_dispatch/routing/mapper.rb:48:in `serve'
actionpack (6.0.3.5) lib/action_dispatch/journey/router.rb:49:in `block in serve'
actionpack (6.0.3.5) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.0.3.5) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:834:in `call'
scout_apm (4.0.4) lib/scout_apm/instant/middleware.rb:53:in `call'
scout_apm (4.0.4) lib/scout_apm/middleware.rb:20:in `call'
bullet (6.1.4) lib/bullet/rack.rb:12:in `call'
warden (1.2.9) lib/warden/manager.rb:36:in `block in call'
warden (1.2.9) lib/warden/manager.rb:34:in `catch'
warden (1.2.9) lib/warden/manager.rb:34:in `call'
rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.3) lib/rack/etag.rb:27:in `call'
rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.3) lib/rack/head.rb:12:in `call'
actionpack (6.0.3.5) lib/action_dispatch/http/content_security_policy.rb:18:in `call'
rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/cookies.rb:648:in `call'
activerecord (6.0.3.5) lib/active_record/migration.rb:567:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (6.0.3.5) lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack (6.0.3.5) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
rollbar (3.1.2) lib/rollbar/middleware/rails/rollbar.rb:25:in `block in call'
rollbar (3.1.2) lib/rollbar.rb:145:in `scoped'
rollbar (3.1.2) lib/rollbar/middleware/rails/rollbar.rb:22:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
rollbar (3.1.2) lib/rollbar/middleware/rails/show_exceptions.rb:22:in `call_with_rollbar'
web-console (4.1.0) lib/web_console/middleware.rb:132:in `call_app'
web-console (4.1.0) lib/web_console/middleware.rb:28:in `block in call'
web-console (4.1.0) lib/web_console/middleware.rb:17:in `catch'
web-console (4.1.0) lib/web_console/middleware.rb:17:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
railties (6.0.3.5) lib/rails/rack/logger.rb:37:in `call_app'
railties (6.0.3.5) lib/rails/rack/logger.rb:26:in `block in call'
activesupport (6.0.3.5) lib/active_support/tagged_logging.rb:80:in `block in tagged'
activesupport (6.0.3.5) lib/active_support/tagged_logging.rb:28:in `tagged'
activesupport (6.0.3.5) lib/active_support/tagged_logging.rb:80:in `tagged'
railties (6.0.3.5) lib/rails/rack/logger.rb:26:in `call'
sprockets-rails (3.2.2) lib/sprockets/rails/quiet_assets.rb:13:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
request_store (1.5.0) lib/request_store/middleware.rb:19:in `call'
rack-timeout (0.6.0) lib/rack/timeout/core.rb:151:in `block in call'
rack-timeout (0.6.0) lib/rack/timeout/support/timeout.rb:19:in `timeout'
rack-timeout (0.6.0) lib/rack/timeout/core.rb:150:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/request_id.rb:27:in `call'
rack (2.2.3) lib/rack/method_override.rb:24:in `call'
rack (2.2.3) lib/rack/runtime.rb:22:in `call'
activesupport (6.0.3.5) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/static.rb:126:in `call'
rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/host_authorization.rb:82:in `call'
rack-mini-profiler (2.3.1) lib/mini_profiler/profiler.rb:373:in `call'
railties (6.0.3.5) lib/rails/engine.rb:527:in `call'
railties (6.0.3.5) lib/rails/railtie.rb:190:in `public_send'
railties (6.0.3.5) lib/rails/railtie.rb:190:in `method_missing'
puma (5.2.2) lib/puma/configuration.rb:248:in `call'
puma (5.2.2) lib/puma/request.rb:76:in `block in handle_request'
puma (5.2.2) lib/puma/thread_pool.rb:337:in `with_force_shutdown'
puma (5.2.2) lib/puma/request.rb:75:in `handle_request'
puma (5.2.2) lib/puma/server.rb:431:in `process_client'
puma (5.2.2) lib/puma/thread_pool.rb:145:in `block in spawn_thread'
source=rack-timeout id=27e40f2f-9e32-4ba3-9433-0da9a8037c07 timeout=15000ms service=407ms state=completed

更新 2 - 切换到 Rails 6.1.3

stack:

ArgumentError (wrong number of arguments (given 2, expected 1)):
  
json (1.8.6) lib/json/common.rb:155:in `initialize'
json (1.8.6) lib/json/common.rb:155:in `new'
json (1.8.6) lib/json/common.rb:155:in `parse'
activesupport (6.1.3) lib/active_support/json/decoding.rb:23:in `decode'
actionpack (6.1.3) lib/action_dispatch/middleware/cookies.rb:543:in `load'
actionpack (6.1.3) lib/action_dispatch/middleware/cookies.rb:579:in `deserialize'
actionpack (6.1.3) lib/action_dispatch/middleware/cookies.rb:668:in `parse'
actionpack (6.1.3) lib/action_dispatch/middleware/cookies.rb:482:in `[]'
actionpack (6.1.3) lib/action_dispatch/middleware/session/cookie_store.rb:114:in `get_cookie'
actionpack (6.1.3) lib/action_dispatch/middleware/session/cookie_store.rb:89:in `block (2 levels) in unpacked_cookie_data'
actionpack (6.1.3) lib/action_dispatch/middleware/session/abstract_store.rb:53:in `stale_session_check!'
actionpack (6.1.3) lib/action_dispatch/middleware/session/cookie_store.rb:88:in `block in unpacked_cookie_data'
rack (2.2.3) lib/rack/request.rb:69:in `fetch'
rack (2.2.3) lib/rack/request.rb:69:in `fetch_header'
actionpack (6.1.3) lib/action_dispatch/middleware/session/cookie_store.rb:87:in `unpacked_cookie_data'
actionpack (6.1.3) lib/action_dispatch/middleware/session/cookie_store.rb:81:in `block in extract_session_id'
actionpack (6.1.3) lib/action_dispatch/middleware/session/abstract_store.rb:53:in `stale_session_check!'
actionpack (6.1.3) lib/action_dispatch/middleware/session/cookie_store.rb:80:in `extract_session_id'
actionpack (6.1.3) lib/action_dispatch/request/session.rb:54:in `block in id'
actionpack (6.1.3) lib/action_dispatch/request/session.rb:53:in `fetch'
actionpack (6.1.3) lib/action_dispatch/request/session.rb:53:in `id'
actionpack (6.1.3) lib/action_dispatch/request/session.rb:72:in `id'
rack (2.2.3) lib/rack/session/abstract/id.rb:329:in `current_session_id'
rack (2.2.3) lib/rack/session/abstract/id.rb:335:in `session_exists?'
actionpack (6.1.3) lib/action_dispatch/request/session.rb:203:in `exists?'
actionpack (6.1.3) lib/action_dispatch/request/session.rb:226:in `load_for_read!'
actionpack (6.1.3) lib/action_dispatch/request/session.rb:92:in `[]'
warden (1.2.9) lib/warden/session_serializer.rb:31:in `fetch'
warden (1.2.9) lib/warden/proxy.rb:224:in `user'
warden (1.2.9) lib/warden/proxy.rb:334:in `_perform_authentication'
warden (1.2.9) lib/warden/proxy.rb:110:in `authenticate'
warden (1.2.9) lib/warden/proxy.rb:120:in `authenticate?'
devise (4.7.3) app/controllers/devise_controller.rb:109:in `require_no_authentication'
activesupport (6.1.3) lib/active_support/callbacks.rb:427:in `block in make_lambda'
activesupport (6.1.3) lib/active_support/callbacks.rb:179:in `block (2 levels) in halting_and_conditional'
actionpack (6.1.3) lib/abstract_controller/callbacks.rb:34:in `block (2 levels) in <module:Callbacks>'
activesupport (6.1.3) lib/active_support/callbacks.rb:180:in `block in halting_and_conditional'
activesupport (6.1.3) lib/active_support/callbacks.rb:512:in `block in invoke_before'
activesupport (6.1.3) lib/active_support/callbacks.rb:512:in `each'
activesupport (6.1.3) lib/active_support/callbacks.rb:512:in `invoke_before'
activesupport (6.1.3) lib/active_support/callbacks.rb:115:in `block in run_callbacks'
activesupport (6.1.3) lib/active_support/callbacks.rb:137:in `run_callbacks'
actionpack (6.1.3) lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack (6.1.3) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (6.1.3) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
activesupport (6.1.3) lib/active_support/notifications.rb:203:in `block in instrument'
activesupport (6.1.3) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.1.3) lib/active_support/notifications.rb:203:in `instrument'
actionpack (6.1.3) lib/action_controller/metal/instrumentation.rb:33:in `process_action'
actionpack (6.1.3) lib/action_controller/metal/params_wrapper.rb:249:in `process_action'
activerecord (6.1.3) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (6.1.3) lib/abstract_controller/base.rb:165:in `process'
actionview (6.1.3) lib/action_view/rendering.rb:39:in `process'
actionpack (6.1.3) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (6.1.3) lib/action_controller/metal.rb:254:in `dispatch'
actionpack (6.1.3) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (6.1.3) lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack (6.1.3) lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
actionpack (6.1.3) lib/action_dispatch/routing/mapper.rb:49:in `serve'
actionpack (6.1.3) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (6.1.3) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.1.3) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.1.3) lib/action_dispatch/routing/route_set.rb:842:in `call'
scout_apm (4.0.4) lib/scout_apm/instant/middleware.rb:53:in `call'
scout_apm (4.0.4) lib/scout_apm/middleware.rb:20:in `call'
bullet (6.1.4) lib/bullet/rack.rb:12:in `call'
warden (1.2.9) lib/warden/manager.rb:36:in `block in call'
warden (1.2.9) lib/warden/manager.rb:34:in `catch'
warden (1.2.9) lib/warden/manager.rb:34:in `call'
rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.3) lib/rack/etag.rb:27:in `call'
rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.3) lib/rack/head.rb:12:in `call'
actionpack (6.1.3) lib/action_dispatch/http/permissions_policy.rb:22:in `call'
actionpack (6.1.3) lib/action_dispatch/http/content_security_policy.rb:18:in `call'
rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (6.1.3) lib/action_dispatch/middleware/cookies.rb:689:in `call'
activerecord (6.1.3) lib/active_record/migration.rb:601:in `call'
actionpack (6.1.3) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (6.1.3) lib/active_support/callbacks.rb:98:in `run_callbacks'
actionpack (6.1.3) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (6.1.3) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (6.1.3) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
rollbar (3.1.2) lib/rollbar/middleware/rails/rollbar.rb:25:in `block in call'
rollbar (3.1.2) lib/rollbar.rb:145:in `scoped'
rollbar (3.1.2) lib/rollbar/middleware/rails/rollbar.rb:22:in `call'
actionpack (6.1.3) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
rollbar (3.1.2) lib/rollbar/middleware/rails/show_exceptions.rb:22:in `call_with_rollbar'
web-console (4.1.0) lib/web_console/middleware.rb:132:in `call_app'
web-console (4.1.0) lib/web_console/middleware.rb:28:in `block in call'
web-console (4.1.0) lib/web_console/middleware.rb:17:in `catch'
web-console (4.1.0) lib/web_console/middleware.rb:17:in `call'
actionpack (6.1.3) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
railties (6.1.3) lib/rails/rack/logger.rb:37:in `call_app'
railties (6.1.3) lib/rails/rack/logger.rb:26:in `block in call'
activesupport (6.1.3) lib/active_support/tagged_logging.rb:99:in `block in tagged'
activesupport (6.1.3) lib/active_support/tagged_logging.rb:37:in `tagged'
activesupport (6.1.3) lib/active_support/tagged_logging.rb:99:in `tagged'
railties (6.1.3) lib/rails/rack/logger.rb:26:in `call'
sprockets-rails (3.2.2) lib/sprockets/rails/quiet_assets.rb:13:in `call'
actionpack (6.1.3) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
request_store (1.5.0) lib/request_store/middleware.rb:19:in `call'
rack-timeout (0.6.0) lib/rack/timeout/core.rb:151:in `block in call'
rack-timeout (0.6.0) lib/rack/timeout/support/timeout.rb:19:in `timeout'
rack-timeout (0.6.0) lib/rack/timeout/core.rb:150:in `call'
actionpack (6.1.3) lib/action_dispatch/middleware/request_id.rb:26:in `call'
rack (2.2.3) lib/rack/method_override.rb:24:in `call'
rack (2.2.3) lib/rack/runtime.rb:22:in `call'
activesupport (6.1.3) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
actionpack (6.1.3) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (6.1.3) lib/action_dispatch/middleware/static.rb:24:in `call'
rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
actionpack (6.1.3) lib/action_dispatch/middleware/host_authorization.rb:98:in `call'
rack-mini-profiler (2.3.1) lib/mini_profiler/profiler.rb:373:in `call'
railties (6.1.3) lib/rails/engine.rb:539:in `call'
railties (6.1.3) lib/rails/railtie.rb:207:in `public_send'
railties (6.1.3) lib/rails/railtie.rb:207:in `method_missing'
puma (5.2.2) lib/puma/configuration.rb:248:in `call'
puma (5.2.2) lib/puma/request.rb:76:in `block in handle_request'
puma (5.2.2) lib/puma/thread_pool.rb:337:in `with_force_shutdown'
puma (5.2.2) lib/puma/request.rb:75:in `handle_request'
puma (5.2.2) lib/puma/server.rb:431:in `process_client'
puma (5.2.2) lib/puma/thread_pool.rb:145:in `block in spawn_thread'
source=rack-timeout id=ef317074-a4fb-4e9e-a6f4-cd2ddd1db3c5 timeout=15000ms service=367ms state=completed

EDIT- 看来您通过升级到较新版本修复了该问题。我希望如果您查看版本之间的更改,他们将解决我在下面概述的问题。


我假设您在升级 Rails 的同时升级到 Ruby 3.0.0。我最近做了完全相同的事情,并且可以肯定地说,您遇到了 Ruby 3 中处理关键字参数的方式发生变化的问题。

您应该阅读这篇文章,其中解释了这些更改:https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/ https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/

这是我如何在代码中修复此问题的示例。

Ruby 3 之前:

  def self.fetch(*args)
    new(*args).fetch
  end

  def self.update(property, category: "default", site:, value:)
    args = [property, category: category, site: site]
    new(*args).update(value)
  end

红宝石 3​​ 之后:

  def self.fetch(*args, **kwargs)
    new(*args, **kwargs).fetch
  end

  def self.update(property, category: "default", site:, value:)
    args = [property]
    kwargs = { category: category, site: site }
    new(*args, **kwargs).update(value)
  end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Rails 5.2 升级到 6.0 时出现参数错误数量错误 的相关文章

  • 是否仍然可以在 Rails 4 中使用测试单元?

    从 Rails 3 2 升级到 Rails 4 后 我的应用程序可以运行 但我用测试单元编写的测试是一场灾难 据传 Minitest 与测试单元 兼容 然而 如果我尝试使用 现在捆绑的 Minitest 就会发现有很多差异 从断言 语句名称
  • ActiveStorage::FileNotFoundError 但文件确实存在

    我正在开发这个 Rails 6 0 21 应用程序 ruby 2 5 5 并使用 puma 3 12 2 作为开发 Web 服务器和具有本地磁盘服务的 ActiveStorage 我的应用程序时不时地出错ActiveStorage File
  • 在 Rails 6 上添加外部 js 文件

    我在 app gt javascript gt packs 下创建了一个名为 custom 的文件夹 并放置以下外部 js metisMenu min js startmin js 然后在 app gt javascript gt pack
  • 如何在Rails 中使用highlight.js?

    我正在尝试在我的 Rails 应用程序中使用语法突出显示和highlight js height js 的说明如下 https github com isagalaev highlight js https github com isaga
  • Rails:has_many:通过还是has_many_and_belongs_to?

    我有一个应用程序 我想通过另一个模型将一个模型的实例链接到同一模型的另一个实例 即 Task1 gt Relationship 基本上 关系模型将具有额外的信息 关系类型 滞后 因此将其作为连接模型是理想的 然而 并没有两个模型可以加入 只
  • 使用 Rails3-autocomplete gem 时出现“自动完成方法不存在”错误

    在我的rails应用程序中 我尝试使用rails3 jquery autocomplete gem 我在 Gemfile 中包含了以下行 gem Rails3 jquery autocomplete 并提供捆绑安装及其在 gems 中列出
  • 后端验证轨

    如何验证文本列不包含网站 示例可以是 www google com google com http gooogle com http www google com https www google com https google com
  • 将用户输入转换为整数

    所以我有一个用户可以输入价格的表格 我正在尝试创建一个 before validation 来规范化数据 如果用户放置 则剪裁它 before validation do unless self price blank then self
  • Rails:同一 URL 显示不同的视图?

    首先 举一个我正在尝试做的事情的例子 如果你去http www meetup com http www meetup com并且您尚未登录 您会看到一个页面 显示 做某事 学习某事 等 这是一个公共页面 但是当您登录时 同一页面 URL 会
  • 如何将“config.include FactoryBot::Syntax::Methods”添加到spec_helper.rb中的rspec配置块?

    如果我添加 config include FactoryBot Syntax Methods under RSpec configure do config 并运行 rspec 我看到此错误 Users perry mac rails pr
  • gitignore 中的文件

    我在生产服务器中有一个带有 Rails 应用程序的存储库 在存储库中有 gitignore 文件 config database yaml 每个开发客户端都有一个具有不同 config database yaml 的克隆存储库 我的问题是这
  • Rails 4:Solr 抛出 JavaMissing 错误,但已安装 Java

    我重新启动了 Rails 4 VPS Solr 显然也关闭了 我现在正在尝试启动 Solr 但是当我运行以下命令时RAILS ENV production bundle exec rake sunspot solr start我收到以下错误
  • HAML:form_tag 困境(缩进?)

    我正在制作 用户设置表单 并坚持使用 HAML form tag 1 2 3 each do i check box tag accept i submit tag 这会导致 语法错误 意外的 kENSURE 期望 end 工作变体是 fo
  • 在 Rails 中捕获 UTM 参数

    我正在尝试捕获 URL 中的 UTM 参数 以将源 营销活动等添加到用户帐户 可悲的是 我似乎不知道如何捕获这些参数 据我所知 我正在关注博客文章http www matthuggins com articles tracking new
  • 如何修复 PagesController#home 缺少请求格式模板:text/html

    对于我的 Rails 6 应用程序routes rb I have Rails application routes draw do root pages home end 并在我的pages controller rb I have cl
  • 非特权、非 root 用户无需 root 或 sudo 即可启动或重新启动 Webserver 服务器(例如 nginx)

    我正在使用 capistrano 部署 Rails Web 应用程序 我想为网络服务器上的部署用户提供尽可能少的权限 作为非特权用户 除了重新启动网络服务器之外 我能够做我需要做的一切 我在 ubuntu 服务器上执行此操作 但这个问题并非
  • 使用 nginx 运行水豚

    是否可以使用 nginx 和乘客来运行水豚 而是 webrick Capybara 与 Cucumber 一起安装在 Rails 应用程序中 这很简单 你唯一要做的就是改变你的想法 水豚和黄瓜都不受本地环境的束缚 你可以测试位于互联网上的应
  • 使用 Ransack 的带有按钮或 link_to 的 Rails 过滤器

    我正在使用 Ransack gem 开发一个 Rails 应用程序 下面是我到目前为止编写的用于过滤数据库的代码 它的工作方式就像一个魅力 现在我想做的是将其他按钮 如过滤器选项 添加到我的索引视图 其中每个按钮都有预定义的过滤器值 换句话
  • Rails:构建涉及多态关联和 STI 的查询

    我正在尝试查找有关照片的 10 条最新评论 以便将它们集成到我的 Rails 3 0 3 应用程序上的活动提要中 我有一个Photo模型 它继承自Upload使用单表继承的模型 class Upload lt ActiveRecord Ba
  • ubuntu上rails mysql gem问题

    Ruby on Rails 我想调用本地主机上的控制器 但服务器说 缺少 mysql gem 将其添加到您的 Gemfile 中 gem mysql 2 8 1 问题 当我点击 gem list 命令时 我得到了一个包含 mysql 2 8

随机推荐

  • 如何让 iPhone 屏幕变暗

    我的 iPhone 屏幕上有一个刷新按钮 可以刷新当前视图中的表格 屏幕刷新得很漂亮 但是有没有办法让屏幕变暗 然后在表格刷新后再次变亮 您可以在要调暗的视图上放置一个带有黑色背景的非不透明视图 默认情况下 其 alpha 值为 0 因此是
  • 尽管我没有使用 AppEngine 或 Datastore,但我无法在项目上启用 firestore

    我正在尝试在一个项目上激活 firestore 但我没有使用 AppEngine 或 Datastore 并且出现此错误消息 无法为此项目启用 Firestore 目前无法在已使用 Cloud Datastore 或 App Engine
  • 如何将 UIImage 添加到分组的 UITableViewCell 中,使其圆角?

    我正在尝试将图像添加到分组 UITableView 中的表格单元格 但图像的角未被剪裁 剪切这些内容的最佳方法是什么 除了在 Photoshop 中剪切它们之外 表格内容是动态的 例如 表格中的第一张图像只需将左上角圆角化即可 这是我的解决
  • AWS 获取带有自定义域的预签名 URL

    以下是我正在做的事情 我正在使用自定义域为我的非公开 s3 存储桶资源生成预签名 URL 另外 为了添加证书 我为具有以下原始设置的存储桶创建了一个 Cloudfront 发行版 源域名 bucket name s3 amazonaws c
  • 使用 https 的 Web 服务身份验证给出错误

    我编写了一个简单的 Web 服务 并使用摘要和 HTTPS 身份验证来保护它 我已经使用 Java 中的 keytool 生成了我的证书 当我通过创建 war 文件在 Tomcat 中部署 Web 服务时 axis 的欢迎页面正确显示 但是
  • 为什么只有 50 个实例在 AWS lambda 上运行?

    我在用context logStreamName识别 lambda 实例 并发设置为无保留 但日志显示只有 50 个实例正在运行 我是否误解了logStream pre logStream pre实例 我从那里得到的信息这个博客 https
  • Daphne Django 文件上传大小限制

    我使用 Daphne 进行套接字和 http 连接 我正在运行 4 个工作容器 并且现在在 docker 容器中本地运行所有内容 如果我尝试上传 400MB 的文件 我的 daphne 服务器会失败 它适用于最大 15MB 的小文件 我的
  • 使用无形类型不等式时如何自定义 Scala 模糊隐式错误

    def typeSafeSum T lt Nat W lt Nat R lt Nat x T y W implicit sum Sum Aux T W R error R 7 x typeSafeSum 3 4 compilation er
  • 如何将毫秒转换为天、小时、分钟

    我尝试这样做 long Plptime player getStatistic Statistic PLAY ONE TICK 50L from ticks to ms 1 tick 20 each sec by 50 gives apro
  • 计算机如何评估巨大的数字?

    例如 如果我输入一个值 1234567 98787878 Wolfram Alpha 可以为我提供许多细节 这包括小数近似 总长度 最后一位数字等等 您如何评估如此大的数字 据我了解 编程语言必须具有特殊的数据类型才能存储数字 更不用说将其
  • Angular 4 触发自定义事件 - EventEmitter 与dispatchEvent()

    我正在构建指令 该指令应该在元素进入视口时添加类 并且还将触发自定义事件 我找到了两种触发事件的方法 EventEmitterand dispatchEvent 两者都工作正常 在这种情况下应该使用哪个 为什么 对代码的任何其他建议表示赞赏
  • 如何在索引视图中打印关联数据

    subjects this gt Subjects gt find all contain gt Users fields gt Users username Users email gt hydrate false gt toArray
  • mongoid 中的嵌入文档与哈希数据类型

    我找不到任何讨论此问题的博客文章或文档 它们 嵌入式文档和哈希数据类型 非常相似 彼此相比有何好处或限制 考虑我的架构设计 class HistoryTracker include Mongoid Document include Mong
  • 一组类型的模板专业化

    如何为一组数据类型专门化模板 例如 template
  • UWP/XAML:如何使用BaseOn继承默认样式?

    微软官方article https msdn microsoft com en us windows uwp controls and patterns styling controls states 修改系统默认样式 您应该尽可能使用来自
  • 热成像调色板

    自热成像早期以来 红外热像仪经常使用独特的调色板 从黑色到蓝色 品红色 橙色 黄色到亮白色 这个调色板通常被称为Iron or Ironbow 这是使用前视红外相机拍摄的图像的典型假彩色可视化 来源 维基百科 术语科特 http commo
  • 如何使 UITableView 可重新排列?

    我正在尝试使我的 UITableView 可编辑 以便您可以移动单元格 现在 当我单击编辑按钮时 它只允许我删除 但不能重新排列 我有的方法有 Code BOOL tableView UITableView tableView canEdi
  • 使用 Spring Security 时,SecurityContext 是否在请求之间共享?

    在使用 Spring Boot 编写的 Rest API 上使用基于无状态令牌的身份验证时 我看到一些奇怪的行为 客户端在每个请求中包含一个 JWT 令牌 并且我编写的扩展 GenericFilterBean 的自定义过滤器使用以下命令将基
  • 在后台线程上搜索

    我试图在 iPhone 应用程序中搜索数千个对象 但是搜索严重滞后 每次击键后 UI 都会冻结 1 2 秒 为了防止这种情况 我必须在后台线程上执行搜索 我想知道是否有人有一些在后台线程上搜索的提示 我读了一点NSOperation并在网上
  • 将 Rails 5.2 升级到 6.0 时出现参数错误数量错误

    我正在尝试将旧站点从 Rails5 2 升级到 6 0 然后再升级到 6 1 推荐的路径 我收到了有关参数数量错误的各种错误 其中一些错误我已通过更新或删除各种 gem 设法清除 最后我被困在了这一点上 rbenv versions 3 0