将变量传递给 Rails 邮件程序
Passing Variable into Rails Mailer
嗨,Stack 用户,
我已经被这个问题困扰了大约两个小时,不知道我做错了什么。我在 User
的更新操作上调用方法 send_intro_email
。 send_intro_email
方法调用名为 intro_email(user)
.
的 NotificationMailer
方法
我遇到的问题是 user
的数据一直传递到 .erb 电子邮件中使用它的位置。我测试了它,它实际上正在通过,但不知道为什么我不能在电子邮件本身中使用它。
文件:
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
The users name is <%= user.name %>.
如果需要,我可以稍后在我的另一台 PC 上显示错误消息。非常感谢您的帮助。
好吧,您正在使用局部变量 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 %>.
嗨,Stack 用户,
我已经被这个问题困扰了大约两个小时,不知道我做错了什么。我在 User
的更新操作上调用方法 send_intro_email
。 send_intro_email
方法调用名为 intro_email(user)
.
NotificationMailer
方法
我遇到的问题是 user
的数据一直传递到 .erb 电子邮件中使用它的位置。我测试了它,它实际上正在通过,但不知道为什么我不能在电子邮件本身中使用它。
文件:
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
The users name is <%= user.name %>.
如果需要,我可以稍后在我的另一台 PC 上显示错误消息。非常感谢您的帮助。
好吧,您正在使用局部变量 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 %>.