首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理来自Blacklight的Solr错误消息

处理来自Blacklight的Solr错误消息
EN

Stack Overflow用户
提问于 2013-08-27 14:26:26
回答 1查看 482关注 0票数 1

每当Solr由于某种原因执行查询失败时,它将返回错误消息和错误代码。我想在黑灯中处理这样的错误。现在,当从Solr接收一个错误时,用户将得到一个500个内部错误。作为一名开发人员,我可以看到所发生的事情是一个RSolr::Error::Http in CatalogController#index,它的代码行是问题的来源:

代码语言:javascript
复制
res = blacklight_solr.send_and_receive(path, :params=>solr_params)

是否可以自定义错误处理,以便我至少可以向用户显示一个指示性错误消息,而不是无益的500个内部错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-29 10:38:35

打开文件lib\blacklight\catalog.rb。函数rsolr_request_error(exception)负责处理Solr错误。exception参数是一个RSolr::RequestError,它表示来自Solr的错误。为了通过显示来自Solr的消息来处理错误,只需在else中添加以下内容

代码语言:javascript
复制
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。如果您希望以不同的方式处理错误,那么这里就是要这样做的地方。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18468218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档