用户注册(Devise RegistrationController(后,我想给他们发一封欢迎电子邮件。
在我的用户模型中,我创建了一个函数:
def send_welcome_email
UserMailer.welcome(self).deliver
end
然后我添加了after_create :send_welcome_email
在电子邮件视图中,我需要访问变量。
<p><span><strong>Hi <%= self.name %>,</strong></span></p>
返回错误:
undefined method `name' for #<#<Class:0x00007fa7d18e13b0>:0x00007fa7e4025358>
这会导致上面的错误,这是有道理的,但我不确定如何访问(刚刚创建的(模型中的变量。
我一直在关注这个问题:https://stackoverflow.com/a/17480095/9200273
欢迎方式:
def welcome(user)
mail(
to: user.email,
subject: 'Welcome to Site!',
from: "support@site.com"
)
end
您可以使用with
方法将对象传递给Mailer类,如下所示:
UserMailer.with(user: self).welcome.deliver
UserMailer类内部:
def welcome_email
@user = params[:user]
...
end
视图中:
<%= @user.name %>
参考:https://guides.rubyonrails.org/action_mailer_basics.html