使用 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

添加您的应用域名会将用户重定向到微博所在的站点