1

backup gem を使用して pg DB のバックアップを作成しています。通知を使用して、メールで通知する代わりに、バックアップが完了したことを示すフラッシュ メッセージを表示できますか。または、カスタム通知を定義するその他の方法。

4

2 に答える 2

0

Flash メッセージは通常、何もレンダリングされていないコントローラーからリダイレクトするときに役立ちます。ユーザーを作成するとします。create controller が何もレンダリングせず、ホームページにリダイレクトしている場合は、ここでフラッシュ メッセージを使用できます。以下にその構文を示します。

flash[:notice] = "User successfully created"

また

flash[:notice] = "Some error occured"

条件に応じて、次のページにフラッシュ メッセージが表示されます。

ありがとう

于 2012-09-19T19:07:04.407 に答える
0

「on_success、on_warning、および on_failure 通知は、デフォルトで常に true です。」

notify_by Mail do |mail|
  mail.on_success = false
  mail.on_error = false
  mail.on_failure = false
  #flash[:notice] = 'Done...' or whatever
end

Singh が言ったように、メッセージはユーザーが何が起こっているかを知るためのものです。バックアップ gem を使用すると、サーバー管理者などに使用されない限り、バックアップについてユーザーに通知する必要はありません。

または、通知をオーバーライドできます

module Backup
  module Notifier
    class Mail < Base
      #....
      def notify!(status)
        name, send_log =
            case status
            when :success then [ 'Success', false ]
            when :warning then [ 'Warning', true  ]
            when :failure then [ 'Failure', true  ]
            end

        email = new_email
        email.subject = "[Backup::%s] #{@model.label} (#{@model.trigger})" % name
        email.body    = @template.result('notifier/mail/%s.erb' % status.to_s)

        if send_log
          email.convert_to_multipart
          email.attachments["#{@model.time}.#{@model.trigger}.log"] = {
            :mime_type => 'text/plain;',
            :content   => Logger.messages.join("\n")
          }
        end

        email.deliver!
      end
    end
  end
end

https://github.com/meskyanichi/backup/blob/master/lib/backup/notifier/mail.rb

于 2012-09-19T19:15:03.980 に答える