例外発生時にException Notificationで通知をしようと思い、導入してみたところ以下のエラーがでました。
1
2
| ERROR: Failed to generate exception summary:
ActionView::Template::Error: undefined method `current' for Time:Class
|
日付の取得にTime.current
を使っており、Time.current
はActive supportにより拡張されたメソッドなのでActive Supportを使っている環境でしか動作しません(要するにRailsじゃないと動かない。Sinatraは…)。
PRもでているので対応してほしいところです。
対応方法
require 'active_support/core_ext/time’
をすることでTime.current
を使えるようにしました。
サンプルコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| require 'rubygems'
require 'bundler/setup'
require "sinatra/base"
require 'exception_notification'
# Time.currentを使えるようにする
require 'active_support/core_ext/time'
class App < Sinatra::Application
use ExceptionNotification::Rack,
:email => {
:email_prefix => "[Exception] ",
:sender_address => %{"notifier" <notifier@example.com>},
:exception_recipients => %w{shoyan@example.com}
}
get '/' do
begin
// 何かの処理
rescue Exception => e
status 500
ExceptionNotifier.notify_exception(e, env: env)
e.message
end
end
end
|