新用户响应邀请失败,word_watcher.rb:258:in `censor_text_with_regexp'

嘿,Discourse 用户们,

我收到一位论坛成员的报告,称被邀请的用户无法完成注册。我已确认此问题。复现很简单:只需向特定用户发送邀请,他们输入想要的用户名、密码和姓名,勾选“接受服务条款”,然后点击“接受邀请”按钮,按钮变灰后便无任何反应。日志显示该流程在 watch_words 过滤函数中失败。以下是我看到的错误信息:Watch Words 中未启用正则表达式选项,且 watch_words 设置已数月未作任何更改。

感谢协助。- Kirk

消息(共报告 13 份)

NoMethodError(对 true 调用未定义的方法 `gsub')
app/services/word_watcher.rb:258:in `censor_text_with_regexp'
app/services/word_watcher.rb:146:in `block in censor_text'
app/services/word_watcher.rb:146:in `each'
app/services/word_watcher.rb:146:in `inject'
app/services/word_watcher.rb:146:in `censor_text'
app/models/user.rb:1612:in `block in apply_watched_words'
app/models/user.rb:1611:in `each'
app/models/user.rb:1611:in `apply_watched_words'
app/models/invite_redeemer.rb:156:in `create_user_from_invite'
app/models/invite_redeemer.rb:220:in `invited_user'
app/models/invite_redeemer.rb:277:in `add_user_to_groups'
app/models/invite_redeemer.rb:238:in `process_invitation'
app/models/invite_redeemer.rb:56:in `block in redeem'
app/models/invite_redeemer.rb:54:in `redeem'
app/models/invite.rb:239:in `redeem'
app/controllers/invites_controller.rb:376:in `perform_accept_invitation'
app/controllers/application_controller.rb:428:in `block in with_resolved_locale'
app/controllers/application_controller.rb:428:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:415:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
lib/middleware/default_headers.rb:13:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:410:in `call'

回溯

app/services/word_watcher.rb:258:in `censor_text_with_regexp'
app/services/word_watcher.rb:146:in `block in censor_text'
app/services/word_watcher.rb:146:in `each'
app/services/word_watcher.rb:146:in `inject'
app/services/word_watcher.rb:146:in `censor_text'
app/models/user.rb:1612:in `block in apply_watched_words'
app/models/user.rb:1611:in `each'
app/models/user.rb:1611:in `apply_watched_words'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:361:in `block in make_lambda'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:178:in `block in call'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:668:in `block (2 levels) in default_terminator'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:667:in `catch'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:667:in `block in default_terminator'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:179:in `call'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:559:in `block in invoke_before'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:559:in `each'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:559:in `invoke_before'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:140:in `run_callbacks'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:913:in `_run_save_callbacks'
activerecord (8.0.2.1) lib/active_record/callbacks.rb:441:in `create_or_update'
activerecord (8.0.2.1) lib/active_record/timestamp.rb:127:in `create_or_update'
activerecord (8.0.2.1) lib/active_record/persistence.rb:424:in `save!'
activerecord (8.0.2.1) lib/active_record/validations.rb:54:in `save!'
activerecord (8.0.2.1) lib/active_record/transactions.rb:365:in `block in save!'
activerecord (8.0.2.1) lib/active_record/transactions.rb:417:in `block (2 levels) in with_transaction_returning_status'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/database_statements.rb:357:in `transaction'
activerecord (8.0.2.1) lib/active_record/transactions.rb:413:in `block in with_transaction_returning_status'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:412:in `with_connection'
activerecord (8.0.2.1) lib/active_record/connection_handling.rb:310:in `with_connection'
activerecord (8.0.2.1) lib/active_record/transactions.rb:409:in `with_transaction_returning_status'
activerecord (8.0.2.1) lib/active_record/transactions.rb:365:in `save!'
activerecord (8.0.2.1) lib/active_record/suppressor.rb:56:in `save!'
app/models/invite_redeemer.rb:156:in `create_user_from_invite'
app/models/invite_redeemer.rb:220:in `invited_user'
app/models/invite_redeemer.rb:277:in `add_user_to_groups'
app/models/invite_redeemer.rb:238:in `process_invitation'
app/models/invite_redeemer.rb:56:in `block in redeem'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/transaction.rb:626:in `block in within_new_transaction'
activesupport (8.0.2.1) lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/transaction.rb:623:in `within_new_transaction'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/database_statements.rb:367:in `within_new_transaction'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/database_statements.rb:359:in `transaction'
activerecord (8.0.2.1) lib/active_record/transactions.rb:233:in `block in transaction'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:418:in `with_connection'
activerecord (8.0.2.1) lib/active_record/connection_handling.rb:310:in `with_connection'
activerecord (8.0.2.1) lib/active_record/transactions.rb:232:in `transaction'
app/models/invite_redeemer.rb:54:in `redeem'
app/models/invite.rb:239:in `redeem'
app/controllers/invites_controller.rb:376:in `perform_accept_invitation'
actionpack (8.0.2.1) lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action'
actionpack (8.0.2.1) lib/abstract_controller/base.rb:226:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/rendering.rb:193:in `process_action'
actionpack (8.0.2.1) lib/abstract_controller/callbacks.rb:261:in `block in process_action'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:120:in `block in run_callbacks'
app/controllers/application_controller.rb:428:in `block in with_resolved_locale'
i18n (1.14.7) lib/i18n.rb:353:in `with_locale'
app/controllers/application_controller.rb:428:in `with_resolved_locale'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:129:in `block in run_callbacks'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:140:in `run_callbacks'
actionpack (8.0.2.1) lib/abstract_controller/callbacks.rb:260:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/rescue.rb:27:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/instrumentation.rb:76:in `block in process_action'
activesupport (8.0.2.1) lib/active_support/notifications.rb:210:in `block in instrument'
activesupport (8.0.2.1) lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport (8.0.2.1) lib/active_support/notifications.rb:210:in `instrument'
actionpack (8.0.2.1) lib/action_controller/metal/instrumentation.rb:75:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (8.0.2.1) lib/active_record/railties/controller_runtime.rb:39:in `process_action'
actionpack (8.0.2.1) lib/abstract_controller/base.rb:163:in `process'
actionview (8.0.2.1) lib/action_view/rendering.rb:40:in `process'
rack-mini-profiler (4.0.1) lib/mini_profiler/profiling_methods.rb:90:in `block in profile_method'
actionpack (8.0.2.1) lib/action_controller/metal.rb:252:in `dispatch'
actionpack (8.0.2.1) lib/action_controller/metal.rb:335:in `dispatch'
actionpack (8.0.2.1) lib/action_dispatch/routing/route_set.rb:67:in `dispatch'
actionpack (8.0.2.1) lib/action_dispatch/routing/route_set.rb:50:in `serve'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:53:in `block in serve'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:133:in `block in find_routes'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:126:in `each'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:126:in `find_routes'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:34:in `serve'
actionpack (8.0.2.1) lib/action_dispatch/routing/route_set.rb:908:in `call'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
rack (2.2.17) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.17) lib/rack/conditional_get.rb:40:in `call'
rack (2.2.17) lib/rack/head.rb:12:in `call'
actionpack (8.0.2.1) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:415:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
rack (2.2.17) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.17) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/cookies.rb:706:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:100:in `run_callbacks'
actionpack (8.0.2.1) lib/action_dispatch/middleware/callbacks.rb:30:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
logster (2.20.1) lib/logster/middleware/reporter.rb:40:in `call'
lib/middleware/default_headers.rb:13:in `call'
railties (8.0.2.1) lib/rails/rack/logger.rb:41:in `call_app'
railties (8.0.2.1) lib/rails/rack/logger.rb:29:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/request_id.rb:34:in 

环境

HTTP 主机:discourse.bsh.zone
2 个赞

用户名或个人资料信息是否匹配已监视或禁止的单词?

这表明可能存在代码错误……在某个地方。

您使用的是哪个版本的 Discourse,是否安装了任何第三方插件?

不,已经检查过了。我有大约 20 个监视词,使用我的测试帐户也会产生故障。

我使用的是 3.6.0.beta1-dev (dab361ac41) 版本。我通常在每月的第一和第三个星期一定期更新。我猜测这个问题是从 18 号的更新开始出现的。这是我 app.yml 中的插件列表。看起来我现在有几个“已包含在核心”的插件可以移除了。


          - git clone https://github.com/discourse/docker_manager.git
##        - git clone https://github.com/iunctis/discourse-formatting-toolbar.git
          - git clone https://github.com/discourse/discourse-saved-searches.git
          - git clone https://github.com/discourse/discourse-fingerprint.git
          - git clone https://github.com/sylque/discourse-home-page.git
          - git clone https://github.com/discourse/discourse-follow.git
          - git clone https://github.com/LeoDavidson/discourse-forcemoderation.git
          - git clone https://github.com/discourse/discourse-yearly-review.git
          - git clone https://github.com/discourse/discourse-bbcode.git
          - git clone https://github.com/discourse/discourse-cakeday.git
          - git clone https://github.com/discourse/discourse-whos-online
          - git clone https://github.com/paviliondev/discourse-locations.git
          - git clone https://github.com/communiteq/discourse-legal-compliance.git
          - git clone https://github.com/communiteq/discourse-delete-unreplied-topics.git

请展示您的审查词语列表好吗?

我宁愿不发布它们——有些相当冒犯。而且它们至少一年没变过了。问:正则表达式匹配功能是新的吗?我可以尝试打开它,看看是否能改变一些处理方式。

切换正则表达式无济于事:

Message (15 copies reported)

NoMethodError (undefined method `gsub' for true):
  app/services/word_watcher.rb:258:in `censor_text_with_regexp'
  app/services/word_watcher.rb:146:in `block in censor_text'
  app/services/word_watcher.rb:146:in `each'
  app/services/word_watcher.rb:146:in `inject'
  app/services/word_watcher.rb:146:in `censor_text'
  app/models/user.rb:1612:in `block in apply_watched_words'
  app/models/user.rb:1611:in `each'
  app/models/user.rb:1611:in `apply_watched_words'
  app/models/invite_redeemer.rb:156:in `create_user_from_invite'
  app/models/invite_redeemer.rb:220:in `invited_user'
  app/models/invite_redeemer.rb:277:in `add_user_to_groups'
  app/models/invite_redeemer.rb:238:in `process_invitation'
  app/models/invite_redeemer.rb:56:in `block in redeem'
  app/models/invite_redeemer.rb:54:in `redeem'
  app/models/invite.rb:239:in `redeem'
  app/controllers/invites_controller.rb:376:in `perform_accept_invitation'
  app/controllers/application_controller.rb:428:in `block in with_resolved_locale'
  app/controllers/application_controller.rb:428:in `with_resolved_locale'
  lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
  lib/content_security_policy/middleware.rb:12:in `call'
  lib/middleware/anonymous_cache.rb:415:in `call'
  lib/middleware/csp_script_nonce_injector.rb:12:in `call'
  config/initializers/008-rack-cors.rb:26:in `call'
  lib/middleware/default_headers.rb:13:in `call'
  config/initializers/100-quiet_logger.rb:20:in `call'
  config/initializers/100-silence_logger.rb:29:in `call'
  lib/middleware/enforce_hostname.rb:23:in `call'
  lib/middleware/processing_request.rb:12:in `call'
  lib/middleware/request_tracker.rb:410:in `call'

Backtrace

app/services/word_watcher.rb:258:in `censor_text_with_regexp'
app/services/word_watcher.rb:146:in `block in censor_text'
app/services/word_watcher.rb:146:in `each'
app/services/word_watcher.rb:146:in `inject'
app/services/word_watcher.rb:146:in `censor_text'
app/models/user.rb:1612:in `block in apply_watched_words'
app/models/user.rb:1611:in `each'
app/models/user.rb:1611:in `apply_watched_words'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:361:in `block in make_lambda'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:178:in `block in call'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:668:in `block (2 levels) in default_terminator'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:667:in `catch'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:667:in `block in default_terminator'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:179:in `call'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:559:in `block in invoke_before'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:559:in `each'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:559:in `invoke_before'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:140:in `run_callbacks'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:913:in `_run_save_callbacks'
activerecord (8.0.2.1) lib/active_record/callbacks.rb:441:in `create_or_update'
activerecord (8.0.2.1) lib/active_record/timestamp.rb:127:in `create_or_update'
activerecord (8.0.2.1) lib/active_record/persistence.rb:424:in `save!'
activerecord (8.0.2.1) lib/active_record/validations.rb:54:in `save!'
activerecord (8.0.2.1) lib/active_record/transactions.rb:365:in `block in save!'
activerecord (8.0.2.1) lib/active_record/transactions.rb:417:in `block (2 levels) in with_transaction_returning_status'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/database_statements.rb:357:in `transaction'
activerecord (8.0.2.1) lib/active_record/transactions.rb:413:in `block in with_transaction_returning_status'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:412:in `with_connection'
activerecord (8.0.2.1) lib/active_record/connection_handling.rb:310:in `with_connection'
activerecord (8.0.2.1) lib/active_record/transactions.rb:409:in `with_transaction_returning_status'
activerecord (8.0.2.1) lib/active_record/transactions.rb:365:in `save!'
activerecord (8.0.2.1) lib/active_record/suppressor.rb:56:in `save!'
app/models/invite_redeemer.rb:156:in `create_user_from_invite'
app/models/invite_redeemer.rb:220:in `invited_user'
app/models/invite_redeemer.rb:277:in `add_user_to_groups'
app/models/invite_redeemer.rb:238:in `process_invitation'
app/models/invite_redeemer.rb:56:in `block in redeem'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/transaction.rb:626:in `block in within_new_transaction'
activesupport (8.0.2.1) lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/transaction.rb:623:in `within_new_transaction'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/database_statements.rb:367:in `within_new_transaction'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/database_statements.rb:359:in `transaction'
activerecord (8.0.2.1) lib/active_record/transactions.rb:233:in `block in transaction'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:418:in `with_connection'
activerecord (8.0.2.1) lib/active_record/connection_handling.rb:310:in `with_connection'
activerecord (8.0.2.1) lib/active_record/transactions.rb:232:in `transaction'
app/models/invite_redeemer.rb:54:in `redeem'
app/models/invite.rb:239:in `redeem'
app/controllers/invites_controller.rb:376:in `perform_accept_invitation'
actionpack (8.0.2.1) lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action'
actionpack (8.0.2.1) lib/abstract_controller/base.rb:226:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/rendering.rb:193:in `process_action'
actionpack (8.0.2.1) lib/abstract_controller/callbacks.rb:261:in `block in process_action'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:120:in `block in run_callbacks'
app/controllers/application_controller.rb:428:in `block in with_resolved_locale'
i18n (1.14.7) lib/i18n.rb:353:in `with_locale'
app/controllers/application_controller.rb:428:in `with_resolved_locale'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:129:in `block in run_callbacks'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:140:in `run_callbacks'
actionpack (8.0.2.1) lib/abstract_controller/callbacks.rb:260:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/rescue.rb:27:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/instrumentation.rb:76:in `block in process_action'
activesupport (8.0.2.1) lib/active_support/notifications.rb:210:in `block in instrument'
activesupport (8.0.2.1) lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport (8.0.2.1) lib/active_support/notifications.rb:210:in `instrument'
actionpack (8.0.2.1) lib/action_controller/metal/instrumentation.rb:75:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (8.0.2.1) lib/active_record/railties/controller_runtime.rb:39:in `process_action'
actionpack (8.0.2.1) lib/abstract_controller/base.rb:163:in `process'
actionview (8.0.2.1) lib/action_view/rendering.rb:40:in `process'
rack-mini-profiler (4.0.1) lib/mini_profiler/profiling_methods.rb:90:in `block in profile_method'
actionpack (8.0.2.1) lib/action_controller/metal.rb:252:in `dispatch'
actionpack (8.0.2.1) lib/action_controller/metal.rb:335:in `dispatch'
actionpack (8.0.2.1) lib/action_dispatch/routing/route_set.rb:67:in `dispatch'
actionpack (8.0.2.1) lib/action_dispatch/routing/route_set.rb:50:in `serve'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:53:in `block in serve'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:133:in `block in find_routes'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:126:in `each'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:126:in `find_routes'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:34:in `serve'
actionpack (8.0.2.1) lib/action_dispatch/routing/route_set.rb:908:in `call'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
rack (2.2.17) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.17) lib/rack/conditional_get.rb:40:in `call'
rack (2.2.17) lib/rack/head.rb:12:in `call'
actionpack (8.0.2.1) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:415:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
rack (2.2.17) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.17) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/cookies.rb:706:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:100:in `run_callbacks'
actionpack (8.0.2.1) lib/action_dispatch/middleware/callbacks.rb:30:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
logster (2.20.1) lib/logster/middleware/reporter.rb:40:in `call'
lib/middleware/default_headers.rb:13:in `call'
railties (8.0.2.1) lib/rails/rack/logger.rb:41:in `call_app'
railties (8.0.2.1) lib/rails/rack/logger.rb:29:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/request_id.rb:34:in `call'

Env

HTTP HOSTS: discourse.bsh.zone

我清除了 19 个审查词,邀请注册又可以正常工作了。看来是在一次更新中出了什么问题。

仅一个审查词就会引发错误:

Message (17 copies reported)

NoMethodError (undefined method `gsub' for true)
app/services/word_watcher.rb:258:in `censor_text_with_regexp'
app/services/word_watcher.rb:146:in `block in censor_text'
app/services/word_watcher.rb:146:in `each'
app/services/word_watcher.rb:146:in `inject'
app/services/word_watcher.rb:146:in `censor_text'
app/models/user.rb:1612:in `block in apply_watched_words'
app/models/user.rb:1611:in `each'
app/models/user.rb:1611:in `apply_watched_words'
app/models/invite_redeemer.rb:156:in `create_user_from_invite'
app/models/invite_redeemer.rb:220:in `invited_user'
app/models/invite_redeemer.rb:277:in `add_user_to_groups'
app/models/invite_redeemer.rb:238:in `process_invitation'
app/models/invite_redeemer.rb:56:in `block in redeem'
app/models/invite_redeemer.rb:54:in `redeem'
app/models/invite.rb:239:in `redeem'
app/controllers/invites_controller.rb:376:in `perform_accept_invitation'
app/controllers/application_controller.rb:428:in `block in with_resolved_locale'
app/controllers/application_controller.rb:428:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:415:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
lib/middleware/default_headers.rb:13:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:410:in `call'

Backtrace

app/services/word_watcher.rb:258:in `censor_text_with_regexp'
app/services/word_watcher.rb:146:in `block in censor_text'
app/services/word_watcher.rb:146:in `each'
app/services/word_watcher.rb:146:in `inject'
app/services/word_watcher.rb:146:in `censor_text'
app/models/user.rb:1612:in `block in apply_watched_words'
app/models/user.rb:1611:in `each'
app/models/user.rb:1611:in `apply_watched_words'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:361:in `block in make_lambda'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:178:in `block in call'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:668:in `block (2 levels) in default_terminator'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:667:in `catch'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:667:in `block in default_terminator'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:179:in `call'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:559:in `block in invoke_before'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:559:in `each'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:559:in `invoke_before'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:140:in `run_callbacks'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:913:in `_run_save_callbacks'
activerecord (8.0.2.1) lib/active_record/callbacks.rb:441:in `create_or_update'
activerecord (8.0.2.1) lib/active_record/timestamp.rb:127:in `create_or_update'
activerecord (8.0.2.1) lib/active_record/persistence.rb:424:in `save!'
activerecord (8.0.2.1) lib/active_record/validations.rb:54:in `save!'
activerecord (8.0.2.1) lib/active_record/transactions.rb:365:in `block in save!'
activerecord (8.0.2.1) lib/active_record/transactions.rb:417:in `block (2 levels) in with_transaction_returning_status'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/database_statements.rb:357:in `transaction'
activerecord (8.0.2.1) lib/active_record/transactions.rb:413:in `block in with_transaction_returning_status'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:412:in `with_connection'
activerecord (8.0.2.1) lib/active_record/connection_handling.rb:310:in `with_connection'
activerecord (8.0.2.1) lib/active_record/transactions.rb:409:in `with_transaction_returning_status'
activerecord (8.0.2.1) lib/active_record/transactions.rb:365:in `save!'
activerecord (8.0.2.1) lib/active_record/suppressor.rb:56:in `save!'
app/models/invite_redeemer.rb:156:in `create_user_from_invite'
app/models/invite_redeemer.rb:220:in `invited_user'
app/models/invite_redeemer.rb:277:in `add_user_to_groups'
app/models/invite_redeemer.rb:238:in `process_invitation'
app/models/invite_redeemer.rb:56:in `block in redeem'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/transaction.rb:626:in `block in within_new_transaction'
activesupport (8.0.2.1) lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/transaction.rb:623:in `within_new_transaction'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/database_statements.rb:367:in `within_new_transaction'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/database_statements.rb:359:in `transaction'
activerecord (8.0.2.1) lib/active_record/transactions.rb:233:in `block in transaction'
activerecord (8.0.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:418:in `with_connection'
activerecord (8.0.2.1) lib/active_record/connection_handling.rb:310:in `with_connection'
activerecord (8.0.2.1) lib/active_record/transactions.rb:232:in `transaction'
app/models/invite_redeemer.rb:54:in `redeem'
app/models/invite.rb:239:in `redeem'
app/controllers/invites_controller.rb:376:in `perform_accept_invitation'
actionpack (8.0.2.1) lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action'
actionpack (8.0.2.1) lib/abstract_controller/base.rb:226:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/rendering.rb:193:in `process_action'
actionpack (8.0.2.1) lib/abstract_controller/callbacks.rb:261:in `block in process_action'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:120:in `block in run_callbacks'
app/controllers/application_controller.rb:428:in `block in with_resolved_locale'
i18n (1.14.7) lib/i18n.rb:353:in `with_locale'
app/controllers/application_controller.rb:428:in `with_resolved_locale'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:129:in `block in run_callbacks'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:140:in `run_callbacks'
actionpack (8.0.2.1) lib/abstract_controller/callbacks.rb:260:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/rescue.rb:27:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/instrumentation.rb:76:in `block in process_action'
activesupport (8.0.2.1) lib/active_support/notifications.rb:210:in `block in instrument'
activesupport (8.0.2.1) lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport (8.0.2.1) lib/active_support/notifications.rb:210:in `instrument'
actionpack (8.0.2.1) lib/action_controller/metal/instrumentation.rb:75:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (8.0.2.1) lib/active_record/railties/controller_runtime.rb:39:in `process_action'
actionpack (8.0.2.1) lib/abstract_controller/base.rb:163:in `process'
actionview (8.0.2.1) lib/action_view/rendering.rb:40:in `process'
rack-mini-profiler (4.0.1) lib/mini_profiler/profiling_methods.rb:90:in `block in profile_method'
actionpack (8.0.2.1) lib/action_controller/metal.rb:252:in `dispatch'
actionpack (8.0.2.1) lib/action_controller/metal.rb:335:in `dispatch'
actionpack (8.0.2.1) lib/action_dispatch/routing/route_set.rb:67:in `dispatch'
actionpack (8.0.2.1) lib/action_dispatch/routing/route_set.rb:50:in `serve'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:53:in `block in serve'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:133:in `block in find_routes'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:126:in `each'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:126:in `find_routes'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:34:in `serve'
actionpack (8.0.2.1) lib/action_dispatch/routing/route_set.rb:908:in `call'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
rack (2.2.17) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.17) lib/rack/conditional_get.rb:40:in `call'
rack (2.2.17) lib/rack/head.rb:12:in `call'
actionpack (8.0.2.1) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:415:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
rack (2.2.17) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.17) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/cookies.rb:706:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:100:in `run_callbacks'
actionpack (8.0.2.1) lib/action_dispatch/middleware/callbacks.rb:30:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
logster (2.20.1) lib/logster/middleware/reporter.rb:40:in `call'
lib/middleware/default_headers.rb:13:in `call'
railties (8.0.2.1) lib/rails/rack/logger.rb:41:in `call_app'
railties (8.0.2.1) lib/rails/rack/logger.rb:29:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/request_id.rb:34:in 

Env

HTTP HOSTS: discourse.bsh.zone

我想知道这是否与以下内容的更改有关:

2 个赞

为了好玩,我关闭了新账户需要版主批准的要求。邀请仍然失败,向尝试注册的用户显示“内部服务器错误”。

谢谢,我想我们有足够的信息下周进行重现。

2 个赞

好的,感谢您的报告,很抱歉给您带来不便。这应该可以解决问题:

我将在周一尝试合并它。

3 个赞

我认为我们也缺少 dropdown……为什么不将其移至仅检查字段类型 text 呢?

1 个赞

感谢您报告此 bug!我已调整并合并了 @j.jaffeux 的修复到 main 分支,并将其移植到了 stable 分支。

请告知我们效果如何,或者是否遇到任何其他问题!:slight_smile:

2 个赞

太棒了!谢谢你 :slight_smile: 我将在明天(9月1日,星期一)晚上重建/更新,然后向你汇报。如果你所在的地区庆祝劳动节,祝你节日快乐!

3 个赞

此主题已在 2 天后自动关闭。不允许回复。