将变量传递给Rails Mailer

时间:2015-08-14 20:33:48

标签: ruby-on-rails ruby mailer

嘿那里有Stack Users,

我现在对这个问题感到沮丧了大约两个小时,并且不知道我做错了什么。我正在为send_intro_email的更新操作调用方法Usersend_intro_email方法调用名为NotificationMailer的{​​{1}}方法。

我遇到的问题是intro_email(user)的数据一直传递到内部.erb电子邮件的使用位置。我测试了它,它实际上已经通过但不知道为什么我不能在电子邮件中使用它。

文件:

user

notificaion_mailer.rb

def intro_email(user) puts user # works mail(to: "email", from: "email2", subject: "THIS IS A TEST") end

User.rb

def send_intro_email NotificationMailer.intro_email(self).deliver end

intro_email.erb

如果需要,我可以在以后使用其他PC时显示错误消息。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好吧,您正在使用局部变量user,它只具有您定义的方法的范围。您必须使用实例变量@user作为示例。所以要做的改变就像:

def intro_email(user)
   @user = user
   mail(to: "email", from: "email2", subject: "THIS IS A TEST")
end

然后在视图中使用@user。像

The users name is <%= @user.name %>.