2017-04-21 85 views
0

在我model/user.rb我有以下覆盖:Usind Sidekiq为设计注册确认电子邮件

def send_on_create_confirmation_instructions 
    Devise::Mailer.delay.confirmation_instructions(self) 
    end 

当有人注册,但引发此错误它被称为:

ArgumentError: wrong number of arguments (given 1, expected 2..3) 

,而这是最后一行堆栈跟踪:

lib/ruby/gems/2.3.0/gems/devise-4.0.1/app/mailers/devise/mailer.rb:5:in `confirmation_instructions' 

这是什么方法:

def confirmation_instructions(record, token, opts={}) 
    @token = token 
    devise_mail(record, :confirmation_instructions, opts) 
end 

很明显,我传递了记录,但不是令牌。尽管如此,我无法弄清楚从哪里得到它。我错过了什么?

回答

1

为什么直接拨打confimation_instruction。 尝试下一个: User.find(1).send_confirmation_instructions

https://github.com/plataformatec/devise/blob/bacd9d244cdf223b1fe080fa01b8c5bfc0b7a181/lib/devise/models/confirmable.rb#L41

这是需要关心的令牌。

+0

非常感谢,工作。我看到有人直接调用它的例子。我想知道你怎么知道在那里看? – Linus

+1

我一直在找到一个使用'confiramtion_instruction'的地方,并使用它查找它的文件,并检查使用后遇到这个例子。 – kunashir

+0

感谢您的见解,真正有价值。 – Linus

相关问题