pulibrary / pulmap

Princeton University Library Geoblacklight application.
Apache License 2.0
8 stars 2 forks source link

[Pulmap/production] NoMethodError: undefined method `to_i' for ["1850"]:Array #1128

Open tpendragon opened 1 year ago

tpendragon commented 1 year ago

Error: NoMethodError in advanced # index

URL

https://maps.princeton.edu/advanced.html?page=767&per_page=10&range%5Bsolr_year_i%5D%5Bbegin%5D%5B%5D=1850&range%5Bsolr_year_i%5D%5Bend%5D%5B%5D=1899&search_field=all_fields&sort=dc_title_s%2Basc

Backtrace

NoMethodError: undefined method `to_i' for ["1850"]:Array Range.new(b_bound&.to_i, e_bound&.to_i) if b_bound && e_bound ^^^^^^ Did you mean? to_s to_a to_h
  [[GEM_ROOT]/gems/blacklight_range_limit-8.2.3/app/presenters/blacklight_range_limit/filter_field.rb:58 :in `values`](https://app.honeybadger.io/projects/54400/faults/89368150#backtrace-line-cf37e78e46b3962e8a50c6d177d175c2-9d1ed77ac891)
  [[GEM_ROOT]/gems/blacklight-7.31.0/lib/blacklight/search_state/filter_field.rb:136 :in `any?`](https://app.honeybadger.io/projects/54400/faults/89368150#backtrace-line-f51d1dcc027c57a174e46aed4fa4a837-55f3ec5cacd5)
  [[GEM_ROOT]/gems/blacklight-7.31.0/lib/blacklight/search_state.rb:116 :in `select`](https://app.honeybadger.io/projects/54400/faults/89368150#backtrace-line-3bb91d6969cc16628d4c1a93079f9d2d-2786be506d53)
  [[GEM_ROOT]/gems/blacklight-7.31.0/lib/blacklight/search_state.rb:116 :in `filters`](https://app.honeybadger.io/projects/54400/faults/89368150#backtrace-line-05e5d845b1419f5d7452ebdbdc5d41bc-1ca5feac85ef)
  [[GEM_ROOT]/gems/blacklight-7.31.0/lib/blacklight/solr/search_builder_behavior.rb:145 :in `add_facet_fq_to_solr`](https://app.honeybadger.io/projects/54400/faults/89368150#backtrace-line-70f73e8ece609866b731b354021fb05d-38ad04d1e486)
  [[GEM_ROOT]/gems/blacklight-7.31.0/lib/blacklight/search_builder.rb:151 :in `block (2 levels) in processed_parameters`](https://app.honeybadger.io/projects/54400/faults/89368150#backtrace-line-0bc68fb88d8aa70026aaf3ad91f8446d-db14566b3d25)

Params

{
  "page" => "767",
  "per_page" => "10",
  "range" => {"solr_year_i" => {
    "begin" => ["1850"],
    "end" => ["1899"]
  }},
  "search_field" => "all_fields",
  "sort" => "dc_title_s+asc",
  "controller" => "advanced",
  "action" => "index",
  "format" => "html"
}

View full backtrace and more info at honeybadger.io:

sdellis commented 1 year ago

This happens frequently. It looks like the [] characters in the query string date range are to blame here. If we replace this snippet:

range[solr_year_i][begin][]=1850&range[solr_year_i][end][]=1899

With this snippet:

range[solr_year_i][begin]=1850&range[solr_year_i][end]=1899

It then works as expected.