私は自分のアプリにgem'foreigner'とセットアップコメントを使用していますが、すべてが機能します。ただし、コメントが作成されるたびにユーザーに通知したいと思います。顧客と開発者の2人のユーザーがいます。顧客はコメントを投稿でき、開発者はコメントを投稿できます。
顧客または開発者がコメントを投稿しているかどうかを確認し、適切なテンプレートを使用して電子メールを送信するように、comments_controller.rbファイルを設定するにはどうすればよいですか。
これまでのところ、私は何の作業もせずに次のことを試しました。
def create
@comment = Comment.new(params[:comment])
respond_to do |format|
if @comment.save
if current_user.is_developer?
Notifier.developer_notify(@developer).deliver
elsif current_user.is_customer?
Notifier.customer_notify(@customer).deliver
end
format.html { redirect_to :back, notice: 'Comment was successfully created.' }
# format.json { render json: @comment, status: :created, location: @comment }
else
format.html { render action: "new" }
# format.json { render json: @comment.errors, status: :unprocessable_entity }
end
end
end
「developer_notify」と「customer_notify」は、私のNotifierメーラーで定義されたクラスです。
私の「Notifier」メーラーはこれまでのところ次のようになっています。
def developer_notify(joblisting)
@joblisting = joblisting
mail(:to => @joblisting.current_user.email, :subject => "There's a new comment.")
end
@Joblistingは、各Joblistingに顧客や開発者からの独自のコメントがあるため、参照されるジョブです。
上記を行うと、エラーが発生します-undefined method 'current_user' for nil:NilClass
したがって、ジョブリストIDも、顧客の電子メールアドレスも検出されないのではないかと思います。顧客が同じジョブにコメントを投稿すると、新しいコメントが投稿された通知を含む電子メールが開発者に送信されます。
助言がありますか?