使用 Action 邮件发送新评论通知 rails 4
Using Action mailer for new comment notification rails 4
我在我的应用程序中设置了操作邮件程序,只要在他的微post上发表了新评论,就会向微post用户发送一封邮件。
这是我的代码
comments_controller
def create
@micropost = Micropost.find(params[:micropost_id])
@comment = Comment.new(params[:comment].permit(:user_id, :body, :micropost_id))
@comment.micropost = @micropost
@comment.micropost.user = @micropost.user
@comment.user = current_user
if @comment.save
UserMailer.newcomment_email(@comment).deliver
@comment.create_activity :create, owner: current_user
flash[:success] = "Comment created!"
redirect_to @micropost
else
render 'shared/_comment_form'
end
end
user_mailer.rb
class UserMailer < ActionMailer::Base
default from: "deppy007@gmail.com"
def newcomment_email(comment)
@comment = comment
mail(to: comment.micropost.user.email, subject: "New Comment Notify")
end
end
newcomment_email.html.erb
<%= @comment.user.username %> commented on your post <%= "micropost link?" %>
<p>comment: <%= @comment.body %></p>
该代码运行良好,并向 micropost 用户发送邮件通知,告知用户对您的 post 发表了评论。那我怎么把micropost link放在邮件里呢?
在 newcomment_email.html.erb
的邮件发送者看来,在评论中添加 link_to
标签。例如:
<%= link_to 'micropost', micropost_url(@comment.micropost) %>
这只是一个例子。根据您的应用程序更改它。它会做所需的。希望这有帮助。
然后加入你的routes.rb
Your::Application.routes.draw do
default_url_options :host => "www.example.com"
end
添加您的应用域名会将用户重定向到微博所在的站点
我在我的应用程序中设置了操作邮件程序,只要在他的微post上发表了新评论,就会向微post用户发送一封邮件。
这是我的代码
comments_controller
def create
@micropost = Micropost.find(params[:micropost_id])
@comment = Comment.new(params[:comment].permit(:user_id, :body, :micropost_id))
@comment.micropost = @micropost
@comment.micropost.user = @micropost.user
@comment.user = current_user
if @comment.save
UserMailer.newcomment_email(@comment).deliver
@comment.create_activity :create, owner: current_user
flash[:success] = "Comment created!"
redirect_to @micropost
else
render 'shared/_comment_form'
end
end
user_mailer.rb
class UserMailer < ActionMailer::Base
default from: "deppy007@gmail.com"
def newcomment_email(comment)
@comment = comment
mail(to: comment.micropost.user.email, subject: "New Comment Notify")
end
end
newcomment_email.html.erb
<%= @comment.user.username %> commented on your post <%= "micropost link?" %>
<p>comment: <%= @comment.body %></p>
该代码运行良好,并向 micropost 用户发送邮件通知,告知用户对您的 post 发表了评论。那我怎么把micropost link放在邮件里呢?
在 newcomment_email.html.erb
的邮件发送者看来,在评论中添加 link_to
标签。例如:
<%= link_to 'micropost', micropost_url(@comment.micropost) %>
这只是一个例子。根据您的应用程序更改它。它会做所需的。希望这有帮助。
然后加入你的routes.rb
Your::Application.routes.draw do
default_url_options :host => "www.example.com"
end
添加您的应用域名会将用户重定向到微博所在的站点