当用户发表帖子(sub_opp)时,我会向该用户发送电子邮件。但是,我想在电子邮件中包含这项运动(sub_opp模型中的列)。在下面的示例中,当sub_opp到达邮件程序时,我收到未定义的方法错误。
创建sub_opp的控制器
def create
@sub_opp = SubOpp.new(sub_opp_params)
respond_to do |format|
if @sub_opp.save
user = User.find_by_id(@sub_opp.user_id)
sub_opp = @sub_opp
UserMailer.posted_subopp_email(user, sub_opp).deliver
.... continued
邮件控制器
def posted_subopp_email(user, sub_opp)
mail( :to => user.email, :subject => 'You made a post!' )
end
邮件视图
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>
<body>
<h3>You posted to the sub feed!</h3>
<p>You made a post.</p>
<p><%= sub_opp.sport %></p>
</body>
</html>
为什么<%= sub_opp.sport%>在此示例中不起作用?运动是sub_opp模型中的一列。
谢谢
首先创建一个实例变量。实例变量将在您的邮件视图中可用。
将您的邮件发送器视为MVC中的控制器。
def posted_subopp_email(user, sub_opp)
@sub_opp = sub_opp
@user = user
mail( :to => user.email, :subject => 'You made a post!' )
end
然后像访问您的视图一样访问它
<body>
<h3>You posted to the sub feed!</h3>
<p>You made a post.</p>
<p><%= @sub_opp.sport %></p>
</body>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句