2011-03-22 80 views
4

我想建立一個自定義的局部使用的exception_notification gem定製的諧音在異常通知中的Rails 3

自述明確指出當前版本(2.4.0)在Rails 3應用程序我的異常通知郵件「你可以通過在你的 app/views/exception_notifier目錄中放置一部分名爲該部分的零件來自定義各個部分的渲染方式[...]甚至可以添加新的部分,其中 描述了應用程序特定的數據」

我正在嘗試這些:改變現有的部分,並添加一個新的自定義部分。當改變一個部分時,我更改的部分(app/views/exception_notifier/_session.text.erb)不起作用。當我添加一個新的自定義節,我得到日誌中的以下錯誤:

ActionView::Template::Error (Missing partial exception_notifier/user with {:formats=> 
[:text], :handlers=>[:haml, :rjs, :rhtml, :builder, :erb, :rxml], :locale=>[:de]} in 
view paths "/usr/lib/ruby/gems/1.8/gems/exception_notification-2.4.0/lib/exception_notifier/views"): 

我在做什麼錯了?我懷疑視圖路徑有點搞砸了,而exception_notifier根本沒有打擾到我的/ app/views/exception_notifier目錄。

+1

似乎按照預期的方式工作在供應商/插件中用作插件,但在用作寶石時不可用。 – tbk 2011-03-22 11:04:44

回答

9

當exception_notification用作gem時,爲通告程序配置的唯一view_path是gem自己的視圖路徑。 爲了覆蓋默認部分模板或加載你自己,你將不得不增加你的應用程序模板文件夾視圖路徑

只是如果你有自己的節部分別添加到您的初始化

ExceptionNotifier::Notifier.prepend_view_path File.join(Rails.root, 'app/views') 

不要忘記將其添加到中間件選項中

Whatever::Application.config.middleware.use ExceptionNotifier, 
    :email_prefix => "[Whatever] ", 
    :sender_address => %{"notifier" <[email protected]>}, 
    :exception_recipients => %w{[email protected]}, 
    :sections => %w{my_section1 my_section2} + ExceptionNotifier::Notifier.default_sections 
+0

老闆。感謝您離開這裏! – 2012-01-19 21:29:08

2

從版本2.6.0開始,這不再需要。 該錯誤已經修復,因此不需要在初始化程序中有該行。

+0

我似乎仍然在版本2.6.1上得到它。它會自動將app/views添加到view_path的末尾,以便它首先查找gem的視圖,因此覆蓋視圖不起作用。我需要將上面的初始化程序添加到_prepend_覆蓋視圖路徑。 – 2012-05-31 14:27:15