Ruby on rails 自定义邮件程序未定义方法
我有一个从Deave继承的定制邮递员 这是我的控制器:Ruby on rails 自定义邮件程序未定义方法,ruby-on-rails,devise,actionmailer,mandrill,Ruby On Rails,Devise,Actionmailer,Mandrill,我有一个从Deave继承的定制邮递员 这是我的控制器: class RegistrationsController < Devise::RegistrationsController def create super if @user.persisted? CustomMailer.new_registration(self).deliver end end end 类注册控制器
class RegistrationsController < Devise::RegistrationsController
def create
super
if @user.persisted?
CustomMailer.new_registration(self).deliver
end
end
end
类注册控制器
这是邮递员:
class CustomMailer < Devise::Mailer
def new_registration(user)
@user = user
mandrill_mail(
template: 'New User Welcome',
to: @user.email,
vars: {
'USER_FIRST_NAME' => user.first_name,
},
important: true,
inline_css: true,
async: true
)
end
end
class-CustomMailerUSER.FIRST\u NAME,
},
重要提示:没错,
inline_css:true,
异步:true
)
终止
终止
我觉得我已经尝试了所有的可能性,但总是得到这样一个命名错误:nil:NilClass的未定义方法'email'
所以出于某种原因,我的邮件无法访问我的模型
我正在使用Rails 4和Desive 3.2.4,如果这有什么不同的话,还有Mandrill Mailer
如果您能提供任何帮助,我们将不胜感激。已经使用了几个小时。当您需要通过
@user
时,您正在注册控制器中通过self
:
class RegistrationsController < Devise::RegistrationsController
def create
super
if @user.persisted?
CustomMailer.new_registration(@user).deliver
end
end
end
类注册控制器
self
在本例中是控制器的一个实例,而不是您在邮件中需要的用户
记录