- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在创建一个客户支持应用,客户可以在其中创建、查看、编辑和评论支持票。
我的应用程序的这一部分工作正常,但我想将他们提交到票证表格中的数据通过电子邮件发送给我。
我有一个单独的“联系我们”表单,可以完美地将数据通过电子邮件发送给我,但我想将这两个表单合二为一。
它应该像这样工作:客户端创建票证,票证保存到数据库中,票证副本通过电子邮件发送给我。
我不知道如何通过一种形式实现所有这些操作。
这是我的票务 Controller :
class TicketsController < ApplicationController
def new
@ticket = Ticket.new
end
def create
@ticket = Ticket.new(ticket_params)
@ticket.save
redirect_to @ticket
end
def show
@ticket = Ticket.find(params[:id])
end
def index
@tickets = Ticket.all
end
def edit
@ticket = Ticket.find(params[:id])
end
def update
@ticket = Ticket.find(params[:id])
if @ticket.update(ticket_params)
redirect_to @ticket
else
render 'edit'
end
end
def destroy
@ticket = Ticket.find(params[:id])
@ticket.destroy
redirect_to tickets_path
end
private
def ticket_params
params.require(:ticket).permit(:name, :email, :phone, :help)
end
end
这是我的新工单 View :
<%= link_to "View an Existing Ticket", tickets_path, :class =>'btn btn-danger btn-sm'%>
<h1>New Ticket</h1>
<%= form_for :ticket, url: tickets_path do |f| %>
<p>
<%= f.label "Name:" %>
<%= f.text_field :name %>
</p>
<p>
<%= f.label "Email:" %>
<%= f.text_field :email %>
</p>
<p>
<%= f.label :"Phone #:" %>
<%= f.text_field :phone %>
</p>
<p>
<%= f.label :"How can we help?" %>
<p><%= f.text_area :help, :cols=> 38, :rows => 8 %></p>
</p>
<p>
<button type="submit" class="btn btn-danger btn-sm">Submit Ticket</button>
</p>
<% end %>
<p><%= button_to "Back", root_path, :class => "btn btn-danger btn-sm", :method => :get %></p>
这是我的电子邮件 Controller :
class ContactController < ApplicationController
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
if @message.valid?
NotificationsMailer.new_message(@message).deliver
redirect_to(root_path, :notice => "Message was successfully sent.")
else
flash.now.alert = "Please fill all fields."
render :new
end
end
end
这是我的电子邮件 View :
<%= form_for @message, :url => contactcreate_path do |form| %>
<fieldset class="fields">
<div class="field">
<%= form.label :name %>
<%= form.text_field :name %>
</div>
<div class="field">
<%= form.label :email %>
<%= form.text_field :email %>
</div>
<div class="field">
<%= form.label :subject %>
<%= form.text_field :subject %>
</div>
<div class="field">
<%= form.label :body %>
<%= form.text_area :body %>
</div>
</fieldset>
<fieldset class="actions">
<%= form.submit "Send" %>
</fieldset>
<% end %>
门票型号:
class Ticket < ActiveRecord::Base
after_create :send_new_ticket_to_email
private
def send_new_ticket_to_email
NotificationsMailer.send_new_ticket(self).deliver
end
end
通知邮件:
class NotificationsMailer < ActionMailer::Base
def send_new_ticket(ticket)
@ticket = ticket
mail(:subject => "HelpDesk: #{message.subject}")
default :from => "HelpDeskApp@ascendstudioslive.com"
default :to => "Support@ascendstudioslive.com"
end
如果您还有其他想看的内容,请告诉我。基本上,我想要一个表单,将票证保存到数据库,然后通过电子邮件发送一份副本。
谢谢!
最佳答案
您可以在您的 Ticket 模型中创建一个 after_create 回调,以通过电子邮件将保存的票证发送给您自己。
class Ticket < ActiveRecord::Base
after_create :send_new_ticket_to_email
private
def send_new_ticket_to_email
UserMailer.send_new_ticket(self).deliver
end
end
在你的 ActionMailer 类中:
class UserMailer < ActionMailer::Base
def send_new_ticket(ticket)
@ticket = ticket
/* here you configure the variables for your email */
mail(to: your@email.com, subject: 'New ticket...')
end
end
然后您将能够以任何您喜欢的方式在邮件 View 中使用@ticket 对象。
关于ruby-on-rails - Ruby/ActionMailer/保存邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24663706/
您可以通过添加 :queue 作为可选参数来指定在 ActionMailer 中调用 Deliver_later 时要使用的队列,例如: Notifier.welcome(User.first.id)
环境 Ruby 2.2.1、Rails 4.2.0、rspec-core 3.2.2、rspec-expectations 3.2.0、rspec-mocks 3.2.1、rspec-rails 3.
我正在使用 ActionMailer 发送电子邮件,这些电子邮件包含图像。包含我正在使用的图像 和 config.action_controller.asset_host在暂存/生产中设置正确。 这些
错误 我已经完成了 ActionMailer 设置并在开发中完美运行。我可以调用 UserMailer.welcome(user).deliver,然后电子邮件就会到达目的地。但是,当我将代码投入生产
我正在尝试向我们的用户发送一封本质上只是一张巨型图像的 HTML 电子邮件。到目前为止,我还没有尝试过任何花哨的东西。我的 View 如下所示: body {
一段时间以来,我一直在苦苦思索。我有这个字符串: [18] pry(main)> p.title => "Human meat – Wesker and Son butchers at Smithfi
我正在尝试在我的开发环境中设置一个简单的 contact_us 页面,用户可以在其中使用我创建的表单发送查询。我已经设置了 ActiveMailer 和联系人模型/ Controller / View
我的 config/environments/development.rb 中有以下内容 # ActionMailer settings config.action_mailer.perfor
有没有简单的方法来做 response.should render_template(:foo) 的等价物?在邮件规范中?这是我想要做的: mail.should render_template(:w
我已将 Capistrano 设置为在部署我的 RoR (2.3.8) 应用程序后发送电子邮件。我有一个 config/cap_mailer.rb文件基本上如下所示: ActionMailer::Ba
我有一个问题,ActionMailer 有时不发送电子邮件。它是可重复的,并且会在某些时候影响某些人,尽管导致它的原因是个谜。 尽管 config.action_mailer.raise_delive
我正在使用 ActionMailer 并且在我的邮件模型中,我有一个这样的 from set default :from => "from@example.org" 在我的 environment.r
我不知道为什么,但是 Rails Mailer 使用 Gmail 帐户发送的电子邮件收到的邮件带有主题但正文为空... postman : class ContatoMailer E
我有以下代码。它是一个 ActionMailer 类方法,发送包含两种附件的电子邮件: pdf 文件 (_attachment),在内存中呈现并直接添加到消息中 一些其他文件 (_attached_f
通过actionmailer发送邮件时,在SMTP服务器正常或错误时,该 Action 邮件将从SMTP服务器获得响应。有没有办法在发送邮件后检索此响应? 另外,如果SMTP服务器未抛出任何错误,该怎
我的 Rails 3.1 项目中的 ActionMailer 有一个奇怪的行为,ActionMailer::Base.deliveries 在测试中是空的,而我实际上可以通过在 rails 控制台中运
我一直在使用 actionmailer,但我总觉得它很笨重而且不直观。 你们知道其他更轻便、更直观的解决方案吗? 最佳答案 看看 Pony gem(如 Pony Express),它是 ActionM
我需要在Rails应用程序中使用两个不同的smtp服务器。看来ActionMailer的构造方式,不可能有不同的smtp_settings用于 一个子类。每当发送邮件时,我都可以重新加载每个邮件程序类
看起来很简单,但我还没能让它发挥作用。这些文件在 Web 应用程序上的 S3 上工作正常,但当我通过下面的代码通过电子邮件发送它们时,文件已损坏。 应用程序堆栈:rails 3、heroku、回形针
我在 app/models 中有以下邮件代码。 class Mailman "xyz" # Sends an Email reminder to all the users who missed
我是一名优秀的程序员,十分优秀!