2013-08-27 4 views
1

Solr이 어떤 이유로 쿼리를 실행하지 못하면 오류 메시지와 오류 코드를 반환합니다. Blacklight에서 이러한 오류를 처리하고 싶습니다. 현재 Solr로부터 오류가 발생하면 사용자는 500 개의 내부 오류가 발생합니다.Blacklight의 Solr 오류 메시지 처리

res = blacklight_solr.send_and_receive(path, :params=>solr_params) 

이 가능 나는 적어도 나타내는 오류를 표시 할 수 있도록 오류 처리를 사용자 정의 : 개발자로서 나는 무슨 일하면 문제의 원인으로 다음 코드 줄과 RSolr::Error::Http in CatalogController#index 것을 볼 수 있습니다 도움이되지 않는 500 개의 내부 오류 대신 사용자에게 메시지를 보냅니 까?

답변

1

열린 파일 lib\blacklight\catalog.rb. rsolr_request_error(exception) 함수는 Solr 오류를 처리합니다. exception 매개 변수는 RSolr::RequestError이며 Solr의 오류를 나타냅니다. SOLR에서 메시지를 표시하여 오류를 처리하기 위해 단지하여 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에 다른 메시지를 할당 할 경우. 오류를 다르게 처리하려면이 작업을 수행해야합니다.