Sha256: b213cbe51032c1ca77577c2b8226923690a662c984855c22507695068617e48c

Contents?: true

Size: 1.39 KB

Versions: 9

Compression:

Stored size: 1.39 KB

Contents

# -*- encoding : utf-8 -*-
module Blacklight::Base   
  extend ActiveSupport::Concern

  include Blacklight::Configurable
  include Blacklight::SolrHelper


  included do  
    # When RSolr::RequestError is raised, the rsolr_request_error method is executed.
    # The index action will more than likely throw this one.
    # Example, when the standard query parser is used, and a user submits a "bad" query.
    rescue_from RSolr::Error::Http, :with => :rsolr_request_error if respond_to? :rescue_from
  end

  protected

  # when solr (RSolr) throws an error (RSolr::RequestError), this method is executed.
  def rsolr_request_error(exception)

    if Rails.env.development?
      raise exception # Rails own code will catch and give usual Rails error page with stack trace
    else

      flash_notice = I18n.t('blacklight.search.errors.request_error')

      # If there are errors coming from the index page, we want to trap those sensibly

      if flash[:notice] == flash_notice
        logger.error "Cowardly aborting rsolr_request_error exception handling, because we redirected to a page that raises another exception"
        raise exception
      end

      logger.error exception

      flash[:notice] = flash_notice 
      redirect_to root_path
    end
  end

  def blacklight_solr
    @solr ||=  RSolr.connect(blacklight_solr_config)
  end

  def blacklight_solr_config
    Blacklight.solr_config
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
blacklight-4.6.3 lib/blacklight/base.rb
blacklight-5.0.0.pre3 lib/blacklight/base.rb
blacklight-4.6.2 lib/blacklight/base.rb
blacklight-5.0.0.pre2 lib/blacklight/base.rb
blacklight-4.6.1 lib/blacklight/base.rb
blacklight-5.0.0.pre1 lib/blacklight/base.rb
blacklight-4.6.0 lib/blacklight/base.rb
blacklight-4.5.0 lib/blacklight/base.rb
blacklight-4.5.0.rc1 lib/blacklight/base.rb