我有一个 User 模型(带有 Devise)和一个属于用户的 Post 模型。我用了这个 Railscast(专业版) http://railscasts.com/episodes/61-sending-email-revised创建帐户后向用户发送电子邮件
我创建了一个“NewPostMailer”
这是我的邮件:
class NewPostMailer < ActionMailer::Base
default :from => "[email protected] /cdn-cgi/l/email-protection"
def new_post_email(user)
@user = user
@url = "http://localhost.com:3000/users/login"
mail(:to => user.email, :subject => "New Post")
end
end
我的帖子控制器:
def create
@post= Post.new(params[:post])
respond_to do |format|
if @deal.save
NewPostMailer.new_post_confirmation(@user).deliver
format.html { redirect_to @post, notice: 'Post was successfully created.' }
post.rb
after_create :send_new_post_email
private
def send_new_post_email
NewPostMailer.new_post_email(self).deliver
end
在用户创建帖子后,我必须更改什么才能向用户发送电子邮件。谢谢。
创建另一个邮件程序(http://railscasts.com/episodes/206-action-mailer-in-rails-3 http://railscasts.com/episodes/206-action-mailer-in-rails-3)
class YourMailerName < ActionMailer::Base
default :from => "[email protected] /cdn-cgi/l/email-protection"
def post_email(user)
mail(:to => "#{user.name} <#{user.email}>", :subject => "Registered")
end
end
在你的帖子模型中
after_create :send_email
def send_email
YourMailerName.post_email(self.user).deliver
end
发送电子邮件非常慢,因此请考虑将其放在后台作业中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)