Rails在更新指定字段时发送电子邮件

时间:2016-11-02 13:43:50

标签: ruby-on-rails ruby

我有一个用于跟踪内部设备的应用。一旦设备通过它发布的系统,我就会更新“Ticket”。我经历了很多联系表单教程,但它们并没有真正帮助,因为它们都基于gems或create方法。

下面的代码主要有效,但有两个明显的问题:@ ticket.tracking没有通过跟踪来显示在电子邮件中,它正试图找到链接的模板,当它应该只执行操作然后重定向回到编辑页面。

形式:

<%= form_for(@ticket, url: send_tracking_mail_path(@ticket)) do |tickettracking| %>
  <%= tickettracking.text_field :tracking %>
  <%= tickettracking.submit 'Submit Tracking', class: "btn btn-primary btn-mini", style: "float: right;" %>
<% end %>

票务管理员:

def send_tracking_mail
 @ticket = Ticket.find(params[:id])
 TrackingMailer.tracking(@ticket).deliver_now
 flash[:notice] = "Ticket tracking has been sent."
end

追踪梅勒:

class TrackingMailer < ApplicationMailer
 def tracking(ticket)
  @ticket = ticket
  mail(to: @ticket.customer.email, subject: "Tracking for #{ticket.name}")
 end
end

路线:

patch 'send_tracking_mail.:id', to: 'tickets#send_tracking_mail', as: :send_tracking_mail

电子邮件会发送但不会为&lt;%= @ ticket.tracking%&gt;

呈现任何内容
Your Device Has Been Shipped with tracking <%= @ticket.tracking %>

编辑: 我在电子邮件方法中遗漏了几行

def send_tracking_mail
 @ticket = Ticket.find(params[:id])
 @ticket.update(ticket_params)
 TrackingMailer.tracking(@ticket).deliver_now
 redirect_to edit_ticket_path(@ticket)
end

0 个答案:

没有答案
相关问题