[英]Handle Solr error messages from Blacklight
每當Solr由於某種原因而無法執行查詢時,它都會返回錯誤消息和錯誤代碼。 我想在Blacklight中處理此類錯誤。 現在,當從Solr收到錯誤時,用戶會收到500內部錯誤。 作為開發人員,我可以看到發生的是RSolr::Error::Http in CatalogController#index
的RSolr::Error::Http in CatalogController#index
下面的代碼行是問題的根源:
res = blacklight_solr.send_and_receive(path, :params=>solr_params)
是否可以自定義錯誤處理,以便至少可以向用戶顯示指示性錯誤消息,而不是無益的500內部錯誤?
打開文件lib\\blacklight\\catalog.rb
。 函數rsolr_request_error(exception)
負責處理Solr錯誤。 exception
參數是RSolr::RequestError
,它表示來自Solr的錯誤。 為了通過顯示來自Solr的消息來處理錯誤,只需在else
內添加以下else
:
error_status = eval(exception.response[:body])['error']
if !error_status.nil? and !error_status['msg'].nil?
flash_notice = error_status['msg']
else
flash_notice = I18n.t('blacklight.search.errors.request_error')
end
如果您希望顯示其他消息,請向flash_notice
分配其他消息。 如果您希望以不同的方式處理錯誤,那么可以在這里進行處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.