Chr*_*oya 3 ruby-on-rails actionmailer
我有一个User模型(带有Devise)和一个属于用户的Post模型.我使用此railscast(专业版)在创建帐户后向用户发送电子邮件
我创建了一个"NewPostMailer"
这是我的邮件:
class NewPostMailer < ActionMailer::Base
default :from => "email@gmail.com"
def new_post_email(user)
@user = user
@url = "http://localhost.com:3000/users/login"
mail(:to => user.email, :subject => "New Post")
end
end
Run Code Online (Sandbox Code Playgroud)
我的posts_controller:
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.' }
Run Code Online (Sandbox Code Playgroud)
post.rb
after_create :send_new_post_email
private
def send_new_post_email
NewPostMailer.new_post_email(self).deliver
end
Run Code Online (Sandbox Code Playgroud)
在创建帖子后,我需要更改以向用户发送电子邮件.谢谢.
Kyl*_*e C 12
创建另一个邮件程序(http://railscasts.com/episodes/206-action-mailer-in-rails-3)
class YourMailerName < ActionMailer::Base
default :from => "you@example.com"
def post_email(user)
mail(:to => "#{user.name} <#{user.email}>", :subject => "Registered")
end
end
Run Code Online (Sandbox Code Playgroud)
在你的Post模型中
after_create :send_email
def send_email
YourMailerName.post_email(self.user).deliver
end
Run Code Online (Sandbox Code Playgroud)
发送电子邮件非常慢,所以考虑将其放在后台工作中.
| 归档时间: |
|
| 查看次数: |
8919 次 |
| 最近记录: |