Ruby on rails 未定义的“电子邮件验证”方法&x27;对于UserMailer:Class

Ruby on rails 未定义的“电子邮件验证”方法&x27;对于UserMailer:Class,ruby-on-rails,actionmailer,Ruby On Rails,Actionmailer,即使我们的代码库中不存在email\u-verification也会出现此错误。以下是堆栈跟踪: NoMethodError: undefined method `email_verification' for UserMailer:Class from action_mailer/base.rb:582:in `method_missing' from action_mailer/delivery_job.rb:16:in `public_send' from action_mai

即使我们的代码库中不存在
email\u-verification
也会出现此错误。以下是堆栈跟踪:

NoMethodError: undefined method `email_verification' for UserMailer:Class
  from action_mailer/base.rb:582:in `method_missing'
  from action_mailer/delivery_job.rb:16:in `public_send'
  from action_mailer/delivery_job.rb:16:in `perform'
  from active_job/execution.rb:39:in `block in perform_now'
  from active_support/callbacks.rb:109:in `block in run_callbacks'
  from raven/integrations/rails/active_job.rb:18:in `capture_and_reraise_with_sentry'
  from raven/integrations/rails/active_job.rb:12:in `block (2 levels) in included'
  from active_support/callbacks.rb:118:in `instance_exec'
  from active_support/callbacks.rb:118:in `block in run_callbacks'
  from new_relic/agent/instrumentation/active_job.rb:53:in `perform'
  from new_relic/agent/instrumentation/active_job.rb:23:in `block (4 levels) in <main>'
  from active_support/callbacks.rb:118:in `instance_exec'
  from active_support/callbacks.rb:118:in `block in run_callbacks'
  from i18n.rb:313:in `with_locale'
  from active_job/translation.rb:9:in `block (2 levels) in <module:Translation>'
  from active_support/callbacks.rb:118:in `instance_exec'
  from active_support/callbacks.rb:118:in `block in run_callbacks'
  from active_job/logging.rb:26:in `block (4 levels) in <module:Logging>'
  from active_support/notifications.rb:168:in `block in instrument'
  from active_support/notifications/instrumenter.rb:23:in `instrument'
  from active_support/notifications.rb:168:in `instrument'
  from active_job/logging.rb:25:in `block (3 levels) in <module:Logging>'
  from active_job/logging.rb:46:in `block in tag_logger'
  from active_support/tagged_logging.rb:71:in `block in tagged'
  from active_support/tagged_logging.rb:28:in `tagged'
  from active_support/tagged_logging.rb:71:in `tagged'
  from active_job/logging.rb:46:in `tag_logger'
  from active_job/logging.rb:22:in `block (2 levels) in <module:Logging>'
  from active_support/callbacks.rb:118:in `instance_exec'
  from active_support/callbacks.rb:118:in `block in run_callbacks'
  from active_support/callbacks.rb:136:in `run_callbacks'
  from active_job/execution.rb:38:in `perform_now'
  from active_job/execution.rb:24:in `block in execute'
  from active_support/callbacks.rb:109:in `block in run_callbacks'
  from active_job/railtie.rb:28:in `block (4 levels) in <class:Railtie>'
  from active_support/execution_wrapper.rb:87:in `wrap'
  from active_support/reloader.rb:73:in `block in wrap'
  from active_support/execution_wrapper.rb:83:in `wrap'
  from active_support/reloader.rb:72:in `wrap'
  from active_job/railtie.rb:27:in `block (3 levels) in <class:Railtie>'
  from active_support/callbacks.rb:118:in `instance_exec'
  from active_support/callbacks.rb:118:in `block in run_callbacks'
  from active_support/callbacks.rb:136:in `run_callbacks'
  from active_job/execution.rb:22:in `execute'
  from active_job/queue_adapters/sidekiq_adapter.rb:42:in `perform'
  from sidekiq/processor.rb:192:in `execute_job'
  from sidekiq/processor.rb:165:in `block (2 levels) in process'
  from sidekiq/middleware/chain.rb:128:in `block in invoke'
  from new_relic/agent/instrumentation/sidekiq.rb:33:in `block in call'
  from new_relic/agent/instrumentation/controller_instrumentation.rb:376:in `perform_action_with_newrelic_trace'
  from new_relic/agent/instrumentation/sidekiq.rb:29:in `call'
  from sidekiq/middleware/chain.rb:130:in `block in invoke'
  from raven/integrations/sidekiq.rb:9:in `call'
  from sidekiq/middleware/chain.rb:130:in `block in invoke'
  from sidekiq/middleware/chain.rb:133:in `invoke'
  from sidekiq/processor.rb:164:in `block in process'
  from sidekiq/processor.rb:137:in `block (6 levels) in dispatch'
  from sidekiq/job_retry.rb:109:in `local'
  from sidekiq/processor.rb:136:in `block (5 levels) in dispatch'
  from sidekiq/rails.rb:43:in `block in call'
  from active_support/execution_wrapper.rb:87:in `wrap'
  from active_support/reloader.rb:73:in `block in wrap'
  from active_support/execution_wrapper.rb:87:in `wrap'
  from active_support/reloader.rb:72:in `wrap'
  from sidekiq/rails.rb:42:in `call'
  from sidekiq/processor.rb:132:in `block (4 levels) in dispatch'
  from sidekiq/processor.rb:250:in `stats'
  from sidekiq/processor.rb:127:in `block (3 levels) in dispatch'
  from sidekiq/job_logger.rb:8:in `call'
  from sidekiq/processor.rb:126:in `block (2 levels) in dispatch'
  from sidekiq/job_retry.rb:74:in `global'
  from sidekiq/processor.rb:125:in `block in dispatch'
  from sidekiq/logging.rb:48:in `with_context'
  from sidekiq/logging.rb:42:in `with_job_hash_context'
  from sidekiq/processor.rb:124:in `dispatch'
  from sidekiq/processor.rb:163:in `process'
  from sidekiq/processor.rb:83:in `process_one'
  from sidekiq/processor.rb:71:in `run'
  from sidekiq/util.rb:16:in `watchdog'
  from sidekiq/util.rb:25:in `block in safe_thread'
NoMethodError:UserMailer:Class的未定义方法“电子邮件验证”
来自action_mailer/base.rb:582:in'method_missing'
来自操作\u邮件发送\u作业。rb:16:in“public\u send”
来自操作\u邮件发送\u作业。rb:16:in'perform'
来自活动作业/执行。rb:39:in`block in perform\u now'
来自活动\u支持/回调。rb:109:in`block in run\u回调'
来自raven/integrations/rails/active\u job.rb:18:in'capture\u and\u reraise\u with\u sentry'
来自raven/integrations/rails/active_job.rb:12:in'block(2层)in included'
来自活动\u支持/回调。rb:118:in`instance\u exec'
来自活动\u支持/回调。rb:118:in`block in run\u回调'
来自new_relic/agent/instrumentation/active_job.rb:53:in'perform'
来自new_relic/agent/instrumentation/active_job.rb:23:in'block(4层)in'
来自活动\u支持/回调。rb:118:in`instance\u exec'
来自活动\u支持/回调。rb:118:in`block in run\u回调'
from i18n.rb:313:in'with_locale'
来自活跃的工作/翻译。rb:9:in“block(2级)in”
来自活动\u支持/回调。rb:118:in`instance\u exec'
来自活动\u支持/回调。rb:118:in`block in run\u回调'
来自活动作业/日志记录。rb:26:in'block(4个级别)in'
来自活动_支持/通知。rb:168:in‘block in instrument’
来自active_support/notifications/instrumenter.rb:23:in'instrument'
来自活动支持/通知。rb:168:in“instrument”
来自活动作业/日志记录。rb:25:in`block(3级)in'
来自活动作业/日志记录。rb:46:in`block in tag_logger'
来自活动\u支持/标记的\u日志记录。rb:71:in“block in taged”
来自活动支持/标记日志。rb:28:in“taged”
来自活动\u支持/标记的\u日志记录。rb:71:in'taged'
来自活动作业/日志记录。rb:46:in'tag\u logger'
来自活动作业/日志记录。rb:22:in'block(2个级别)in'
来自活动\u支持/回调。rb:118:in`instance\u exec'
来自活动\u支持/回调。rb:118:in`block in run\u回调'
来自活动\u支持/回调。rb:136:in'run\u回调'
来自活动作业/执行。rb:38:in'perform\u now'
来自活动作业/执行。rb:24:in'block in execute'
来自活动\u支持/回调。rb:109:in`block in run\u回调'
来自活动作业/railtie.rb:28:in“块(4层)in”
来自活动\u支持/执行\u包装器。rb:87:in'wrap'
来自活动的_支持/重新加载程序。rb:73:in‘block in wrap’
来自活动\u支持/执行\u包装器。rb:83:in'wrap'
来自活动支持/重新加载程序。rb:72:in“wrap”
来自活动作业/railtie.rb:27:in“块(3层)in”
来自活动\u支持/回调。rb:118:in`instance\u exec'
来自活动\u支持/回调。rb:118:in`block in run\u回调'
来自活动\u支持/回调。rb:136:in'run\u回调'
来自活动作业/执行。rb:22:in'execute'
来自活动作业/队列适配器/sidekiq适配器。rb:42:in'perform'
来自sidekiq/processor.rb:192:in'execute_job'
来自sidekiq/processor.rb:165:in“进程中的块(2级)”中
来自sidekiq/middleware/chain.rb:128:in'block in invoke'
来自new_relic/agent/instrumentation/sidekiq.rb:33:in‘block in call’
来自new_relic/agent/instrumentation/controller_instrumentation.rb:376:“使用newrelic跟踪执行操作”
来自new_relic/agent/instrumentation/sidekiq.rb:29:in'call'
来自sidekiq/middleware/chain.rb:130:in'block in invoke'
来自raven/integrations/sidekiq.rb:9:in'call'
来自sidekiq/middleware/chain.rb:130:in'block in invoke'
来自sidekiq/middleware/chain.rb:133:in'invoke'
来自sidekiq/processor.rb:164:in“进程中的块”
来自sidekiq/processor.rb:137:in“调度中的块(6级)”中
来自sidekiq/job_retry.rb:109:in'local'
来自sidekiq/processor.rb:136:in“调度中的块(5级)”中
来自sidekiq/rails.rb:43:in'block in call'
来自活动\u支持/执行\u包装器。rb:87:in'wrap'
来自活动的_支持/重新加载程序。rb:73:in‘block in wrap’
来自活动\u支持/执行\u包装器。rb:87:in'wrap'
来自活动支持/重新加载程序。rb:72:in“wrap”
来自sidekiq/rails.rb:42:in'call'
来自sidekiq/processor.rb:132:in“调度中的块(4级)”中
来自sidekiq/processor.rb:250:in'stats'
来自sidekiq/processor.rb:127:in'block(3层)in dispatch'
来自sidekiq/job_logger.rb:8:in'call'
来自sidekiq/processor.rb:126:in“调度中的块(2级)”中
来自sidekiq/job_retry.rb:74:in'global'
来自sidekiq/processor.rb:125:in'block in dispatch'
来自sidekiq/logging.rb:48:in'with_context'
来自sidekiq/logging.rb:42:in'with_job_hash_context'
来自sidekiq/processor.rb:124:in'dispatch'
来自sidekiq/processor.rb:163:in'process'
来自sidekiq/processor.rb:83:in'process_one'
来自sidekiq/processor.rb:71:in'run'
来自sidekiq/util.rb:16:in'watchdog'
来自sidekiq/util.rb:25:in'block in safe_thread'

未解决的Rails问题:

我们需要看到stacktrace中的一些代码,而不是在本例中剪切它。正如rails团队所提到的,这似乎是一个应用层问题,而不是一个框架问题,这意味着在某种程度上,您的应用层或包含的gem正在调用“email\u验证”。您的邮件操作是否可能被称为“电子邮件验证”,例如Is
UserMailer.email\u verification.deliver\u now
实际调用的是什么?您是否使用Deave?这是我能想到的与邮件“交互”的更通用的宝石之一,也可以通过i18n进行定制,正如艾琳在githubYes上所说的那样,我们是@Clara Good catch!我会调查的。