2

사용자가 다른 사용자의 댓글에 응답 할 때마다 현재 이메일을 성공적으로 보내는 레일 메일러가 있습니다. (이메일은 답장을받은 사람에게 전달됩니다). 나는 응답 한 사람의 사용자 이름과 그 사용자의 코멘트 자체와 같이 이메일 본문에 동적 인 내용을 추가하려고합니다. new_reply.html.erb 뷰 내에서 해당 특정 설명을 잡아 내 전자 메일에 올바르게 표시되도록하는 방법을 잘 모르겠습니다. 내 코드는 다음과 같습니다.레일 메일러 - 메일러보기에서 인스턴스 변수에 액세스 할 수 없습니다.

views/comment_mailer/new_reply. html.erb (이메일 내용)

<!DOCTYPE html> 
<html> 
    <head> 
    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' /> 
    </head> 
    <body> 
    <table width="100%"> 

     <h2 style="color: #428bca">You have a new reply.</h2> 
      <p>Someone replied with the following comment...</p> 

     <p><%= comment.body %></p> 

      <p>To reply back, login to the app...</p> 

     </table> 
    </body> 
</html> 

보기/의견/_comment.html.erb (응용 프로그램의 실제 코멘트보기)

<div class="well"> 
    <p class="text-muted">Added on 
    <%= l(comment.created_at, format: '%B, %d %Y %H:%M:%S') %></p> 

    <blockquote> 
    <p><%= comment.body %></p> 
     <p><%= link_to 'reply', new_comment_path(comment.id) %></p> 
    </blockquote> 
</div> 

우편물/comment_mailer.rb (내 댓글 메일러)

class CommentMailer < ApplicationMailer 
    default from: "[email protected]" 

    def new_reply(parent_comment) 
    owner = parent_comment.owner 
     mail(to: owner.email, subject: 'New reply to one of your comments') 
    end 
end 

컨트롤러/model_comments_controller.rb (이 의견 컨트롤러) 메일러의 new_reply 방법에서

def create 
    @taskrelationship = commentable_type.constantize.find(commentable_id) 
    @project = @taskrelationship.taskproject 
    @new_comment = Comment.build_from(@taskrelationship, current_user.id, body) 
    if @new_comment.save 

     # create the notification 
     (@taskrelationship.taskproject.followers.uniq - [current_user]).each do |user| 
     Notification.create(recipient: user, actor: current_user, action: "posted", notifiable: @new_comment) 
     end 

     make_child_comment 
    end 
    render 'projects/show_project_task_comments', layout: false 
    end 

private 

def make_child_comment 
    return if comment_id.blank? 

    parent_comment = Comment.find comment_id 
    @new_comment.move_to_child_of(parent_comment) 
    CommentMailer.new_reply(parent_comment).deliver 
end 

답변

1

은 사용하려는 것이다 주석을 참조하는 인스턴스 변수 @comment을 선언합니다.

그런 다음 템플릿에서 @comment를 사용하여 참조하십시오.

+0

고마워 ... 본질적으로 단지 @comment = Comment.last – BB500

+0

나는 그걸 시도해 본 다음

<% = @ comment.body %>

템플릿에 있지만 작동하지 않습니다. 죄송합니다. 조금 피곤합니다. 바보 같은 것을 놓치고 있다는 것을 알아요. – BB500

+0

disregard ... 나는 단지 'mail'라인 다음에 위치해야한다. 도와 주셔서 감사합니다. – BB500