加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何将多个对象传递到rails中的邮件程序/电子

发布时间:2020-12-17 01:31:51 所属栏目:百科 来源:网络整理
导读:当用户发帖(sub_opp)时,我向用户发送电子邮件.但是,我想在电子邮件中包含这项运动(sub_opp模型中的列).在下面的示例中,当它遇到邮件程序时,我在sub_opp上得到一个未定义的方法错误. 控制器创建sub_opp def create@sub_opp = SubOpp.new(sub_opp_params)respo
当用户发帖(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%>在这个例子中工作? 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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读