【问题标题】:Rails Sidekiq - Mailer class unrecognizedRails Sidekiq - Mailer 类无法识别
【发布时间】:2016-10-26 19:08:51
【问题描述】:

我将 sidekiq 与 rails 5 一起用于后台工作,我也想以这种方式发送电子邮件。在我的 gemfile 上进行以下设置:

gem 'redis-rails'
gem 'sidekiq'
gem 'sinatra', github: 'sinatra/sinatra', require: false
gem 'devise-async'

我也设置了初始化器:

Devise::Async.backend = :sidekiq

然后像这样调用我的邮件方法:

Mailer.delay.signup_email(@user, @password)

在 sidekiq 日志中,我收到错误消息

2016-10-26T19:02:09.473Z 17854 TID-ww0i8 WARN: ArgumentError: undefined class/module Mailer

我的 mailer.rb 文件位于 app/mailers 文件夹中。我重新启动了我的 rails 服务器、redis 服务器、sidekiq,但仍然出现错误。任何人都知道如何解决它?谢谢!

【问题讨论】:

    标签: ruby-on-rails redis sidekiq


    【解决方案1】:

    Mailer 对这个类来说是一个非常糟糕的名字,因此可能不会自动加载。给它一个更具体的名称,UserMailer 等,并将其移动到 user_mailer.rb。

    【讨论】:

    • 为什么 mailer 会是个坏名字?无论如何,尝试过,仍然得到错误 ArgumentError: undefined class/module UserMailer :/
    • 因为可能已经有另一个 gem 在顶层定义了一个 Mailer 类。
    猜你喜欢
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    相关资源
    最近更新 更多