これを起動して実行しようとしていますが、サーバーを起動すると常に「初期化されていない定数ExceptionNotifier」が表示されます。
http://github.com/Rails/exception_notification
私のGemfileには
gem "exception_notification"、:git => " http://github.com/Rails/exception_notification.git "、:branch => "master"
Github readmeに示されているように、config/application.rb、config/environment.rb、config.ru内に構成を配置してみました。 「Whatever」を自分のアプリケーション名に置き換えました。
以前のすべての回答は古くなっています。これを単にgemfileに追加するだけです。
gem 'exception_notification', :require => 'exception_notifier'
そして、readmeに示されているように、production.rb設定ファイルを編集します。
config.middleware.use ExceptionNotifier,
:email_prefix => "[Exception] ",
:sender_address => %{"Exception Notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
公式gemの最新バージョンはRails 3で動作します。ここで見つけることができます: https://github.com/smartinez87/exception_notification 。
次のgemリリースでは:require => 'exception_notifier'
オプションは不要です。
さて、私のために今それが働いています:
# Gemfile
gem "exception_notification", :git => "git://github.com/Rails/exception_notification", :require => 'exception_notifier'
# application.rb, inside the config block
config.middleware.use ::ExceptionNotifier,
:email_prefix => "ApplicationName-Errors: ",
:sender_address => %w{[email protected]},
:exception_recipients => %w{[email protected]}
愚かなことはしない
In gemfile
gem 'exception_notification', :require => 'exception_notifier'
に application.rbファイル
config.middleware.use ExceptionNotifier,
:email_prefix => "[ERROR] ",
:sender_address => %{"Exception Notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
あなたはできました..:*
Rails 3はこのプラグインをgemの形式で使用できません。ラックアプリをgemからロードできない可能性がありますか?代わりにプラグインとしてインストールし、構成構文を次のように変更しました:
config.middleware.use ":: ExceptionNotifier"
の代わりに
config.middleware.use ExceptionNotifier
GitHubの公式リポジトリは次のとおりです: https://github.com/smartinez87/exception_notification
Gemfile内
gem "exception_notification", :require => 'exception_notifier', :git => "https://github.com/smartinez87/exception_notification.git"
Config\initializers\exception_notification.rb
Rails.application.config.middleware.use ExceptionNotifier,
:email_prefix => "[Whatever] ",
:sender_address => %{"notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
rescue_from Exception, with: :render_500
500テンプレート/ページの表示を処理するため、これだけでメールを送信しなくなりました
config.middleware.use ExceptionNotifier,
:email_prefix => "[some prefix] ",
:sender_address => %{"Notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
例外を処理するメソッドで手動で送信する必要があります
def render_500(exception)
# email an error email if there's a 500 in production mode
if Rails.env.production?
ExceptionNotifier::Notifier.exception_notification(request.env, exception).deliver
end
end
したがって、環境に構成要素(production.rb)を配置し、アプリケーションコントローラーに例外処理コードを配置します。
実際、今では、はるかに簡単です。 Gemfile
に次のように記述する必要があります。
gem "exception_notification", :git => "http://github.com/Rails/exception_notification.git", :require => 'exception_notifier'
そして、すべてを修正する必要があります。 :require
オプションは重要です(名前が異なるため、明示的に指定する必要があります)。以前に言及された他のすべてのパッチは、私は仮定してマージされました。
https://github.com/smartinez87/exception_notification
このgemはRails 3.x用に更新されており、3.0.7でテストしたところ、インストールがはるかに簡単になりました。
Gemfile:
gem 'exception_notification'
初期化子:
Rails.application.config.middleware.use ExceptionNotifier,
:email_prefix => "[Whatever] ",
:sender_address => %{"notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
私はそれをproduction.rbの以下で動作させることができました:
config.after_initialize do
config.middleware.use ExceptionNotifier,
:email_prefix => "[Whatever] ",
:sender_address => %{"notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
end
少し作業は必要でしたが、Rails 3.0.0:
1- Rails plugin install http://github.com/sickill/exception_notification.git
(このフォークを使用したくない場合は、元のRailsプラグインに手動で his patch を手動で適用してください:3行のみです)。 undefined method controller_name error '
2- application.rb:
config.middleware.use "::ExceptionNotifier" , :email_prefix => "[Whatever] ",
:sender_address => %{"notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
3-適用 ローレンスピットのパッチ 。 (UPDATE:このリンクは壊れているようです)uninitialized constant ActiveRecord::RecordNotFound
エラーを修正します文書化 ここ 。
それでおしまい。
Rails 3.0.3を使用すると、これは私にとってはうまくいきます:
gem "exception_notification", :git => "https://github.com/sickill/exception_notification.git", :require => 'exception_notifier'
:gitパーツがインポートされるのは、 'undefined method controller_name error'を回避するためのパッチバージョンと、正しいlibを要求するための:requireだからです。
次に、私のproduction.rb環境ファイルにはこれしかありません(マニュアルから)
config.middleware.use ExceptionNotifier,
:email_prefix => "[MyApp] ",
:sender_address => %{"notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
これを機能させるにはさまざまな方法があるようですが、これは私のやり方でした。
乾杯!
私は今同じ問題を抱えていて、このように解決しました:
Gemfile
source 'http://rubygems.org'
gem 'exception_notification_Rails3', :require => 'exception_notifier'
application.rb
config.middleware.use ExceptionNotifier,
:email_prefix => "[some prefix] ",
:sender_address => %{"Notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
Rails 2.3プロジェクトを3.0にリファクタリングしているので、新規インストールでこれを試していません。
編集:
ExceptionNotifierの初期化を、application.rbではなくconfig/initializers /の個別のイニシャライザファイルに入れる方が実際にはより良い(または「より正確」)かもしれません。
config/initializers/exception_notifier.rb
MyApp::Application.config.middleware.use ExceptionNotifier,
:email_prefix => "[some prefix] ",
:sender_address => %{"Notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
これまで(2012-Aug-03)公式サイトは次のとおりです: https://github.com/smartinez87/exception_notification 、そしてREADMEによると、Rails3を完全にサポートしています。
ステップ1。 Gemfileを編集します。
gem 'exception_notification'
ステップ2。
Rails 3以降)ExceptionNotificationはラックミドルウェアとして使用されるため、config.ruファイルまたは実行する環境でオプションを構成できます。ほとんどの場合、本番環境で実行するためのExceptionNotification。
Whatever::Application.config.middleware.use ExceptionNotifier, :email_prefix => "[Whatever] ", :sender_address => %{"notifier" <[email protected]>}, :exception_recipients => %w{[email protected]}
3/14現在の回答を更新...
ただ行う必要がありますgem exception_notification
をgemファイルに追加します。 「必要」はありません。
また、ドキュメントから直接変更された他の変更...
「4.xバージョン以降、構成構文が変更されました。すべての電子メール関連オプションは、:emailキーの下にネストする必要があります。」
そのようです...
Whatever::Application.config.middleware.use ExceptionNotification::Rack,
:email => {
:email_prefix => "[Whatever] ",
:sender_address => %{"notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
}
Rails 3.0.4を使用していますが、上記と同じ問題がありました。私のために働いた唯一の解決策は、Rails 3のexception_notificationのv1.2をプラグインとしてインストールすることでした(正しいブランチ/バージョンを使用していることを確認してください)。
Rails plugin install https://github.com/railsware/exception_notification.git
そして、誰もが言及しているコードをproduction.rbで使用してください:
config.middleware.use ExceptionNotifier,
:email_prefix => "[some prefix] ",
:sender_address => %{"Notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
それは私にとってgemとしては確実に機能せず、readmeには「Exception Notifier Plugin for Rails」とあり、gemとしてのインストールについては何も言及されていません。
ハリー
Exception_notification設定を古いアプリから新しいアプリにコピーして貼り付けましたが、失敗しました。私をここに連れてきて、上記の答えはどれも最新のものではありませんでした。 4.xバージョン以降、ミドルウェアはExceptionNotification::Rack
、ミドルウェア構成は次のようになります。
Whatever::Application.config.middleware.use ExceptionNotification::Rack,
:email => {
:email_prefix => "[Whatever] ",
:sender_address => %{"notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
}