0

コメント テーブルを監視し、何かが作成された後に電子メールを送信するこのオブザーバーがあります。ArgumentError (wrong number of arguments (0 for 5)):エラーが発生したか、次のコードを使用しているため、オブザーバーで関連付けを正しく行っているようには見えません。

class CommentObserver < ActiveRecord::Observer
  def after_create(comment)

    if comment.guest_comment == true
      if comment.name?
        InvoiceMailer.message(comment.name, comment.content, comment.email, comment.user.email, comment.order_id).deliver
      elsif comment.email?
        # do something if there's no email yet
        InvoiceMailer.message(comment.name, comment.content, comment.order.customer.email, comment.user.email, comment.order_id).deliver
      else
        InvoiceMailer.message(comment.email, comment.content, comment.email, comment.user.email, comment.order_id).deliver
      end
    else
      # owner made the comment
      if comment.user.account.company_name?
        InvoiceMailer.message(comment.user.name+", "+comment.user.account.company_name, comment.content, comment.user.email, comment.email, comment.order_id).deliver
      else  
        InvoiceMailer.message(comment.user.name, comment.content, comment.user.email, comment.email, comment.order_id).deliver
      end
    end
  end
end

オブザーバー内に正しい関連付けを記述する方法はありますか?

4

1 に答える 1

0

そのため、オブザーバーはデータベースにアクセスできない/アクセスできないことがわかりました。今のところ、ロジックをメーラーに移動しました (後でヘルパーに移動します)。次に、予約されているため、「メッセージ」をメソッド名として使用しないでください;)

于 2012-11-13T03:18:35.817 に答える