我试图设置Mandrill API,以便在用户单击按钮时发送电子邮件,但我似乎无法让它发送。电子邮件将非常好地从控制台发送,所以我知道这不是一个模板的问题(设计电子邮件也发送查找)。
我认为这与我如何在控制器中设置它有关,但我找不到任何帮助,说明我应该把它放在哪里。
下面是控制器的代码:
def attending
@event = Event.find(params[:id])
type = params[:type]
if type == "attending" && @event.space != 0
current_user.attending << @event
@event.space = @event.space - 1
@event.save
AdminMailer.new_attending(@event.user, current_user)
redirect_to :back, notice: "You've joined the group. Your number will be sent to #{@event.user.name}"
else type == "unattending"
current_user.attending.delete(@event)
redirect_to :back, notice: "You've removed yourself from the group"
end
end这是admin_mailer.rb
class AdminMailer < ActionMailer::Base
require 'mandrill'
def mandrill_client
@mandrill_client ||= Mandrill::API.new MANDRILL_API_KEY
end
def new_attending(creator, user)
template_name = "new-attending"
template_content = []
message = {
to: [{email: creator.email, name: creator.name}],
subject: "Someone wants to go riding with you!",
merge_vars: [
{rcpt: creator.email,
vars: [
{name: "CREATOR_NAME", content: creator.name},
{name: "USER_NAME", content: user.name},
{name: "USER_NUMBER", content: user.number}
]}
]
}
mandrill_client.messages.send_template template_name, template_content, message
end
end下面是他们在view.html.erb中点击的应该发送电子邮件的链接:
<td><% if event.user != current_user && event.space != 0 && user_signed_in? %>
<% unless event.attendees.include?(current_user) %>
<%= link_to "Join", attending_event_path(event, type: "attending"), class: "btn btn-primary btn-xs", method: :put %>
<% end %>
<% end %></td>任何帮助找出为什么它不发送将是伟大的!正如我说过的,当我键入:
AdminMailer.new_attending(@event, @user)发布于 2015-01-19 10:59:01
请替换以下代码。
AdminMailer.new_attending(@event.user, current_user)使用
AdminMailer.new_attending(@event.user, current_user).deliver我希望这会成功。
https://stackoverflow.com/questions/28022645
复制相似问题