нет неявного преобразования nil в строку в модуле поиска Redmine

В Redmine моей компании есть эта ошибка, из-за которой я получаю внутреннюю ошибку, если хочу выполнить поиск в проекте.

Вот журнал, соответствующий ошибке:

Processing by SearchController#index as HTML
  Parameters: {"utf8"=>"✓", "issues"=>"1", "q"=>"test", "id"=>"sprint"}
  Current user: me (id=60)
Completed 500 Internal Server Error in 85.0ms

TypeError (no implicit conversion of nil into String):
  lib/plugins/acts_as_searchable/lib/acts_as_searchable.rb:126:in `search'
  app/controllers/search_controller.rb:74:in `block in index'
  app/controllers/search_controller.rb:73:in `each'
  app/controllers/search_controller.rb:73:in `index'

Строки, соответствующие ошибке в контроллере:

 if [email protected]?
      # no more than 5 tokens to search for
      @tokens.slice! 5..-1 if @tokens.size > 5

      @results = []
      @results_by_type = Hash.new {|h,k| h[k] = 0}

      limit = 10
      @scope.each do |s|
        r, c = s.singularize.camelcase.constantize.search(@tokens, projects_to_search,
          :all_words => @all_words,
          :titles_only => @titles_only,
          :limit => (limit+1),
          :offset => offset,
          :before => params[:previous].nil?)
        @results += r

Вот мой конфиг:

Environment:
  Redmine version                2.6.9.stable
  Ruby version                   2.3.0-p0 (2015-12-25) [x86_64-linux]
  Rails version                  3.2.22
  Environment                    production
  Database adapter               PostgreSQL
SCM:
  Git                            1.9.1
  Filesystem                     
Redmine plugins:
  no plugin installed

Что интересно, когда я ищу только одну букву, меня перенаправляет на страницу поиска, но у меня нет внутренней ошибки.

Я новичок в разработке Redmine и Ruby, мне просто поручили исправить эту ошибку. Кто-нибудь из вас знает, как это исправить?

Спасибо.


person Roux    schedule 26.05.2016    source источник
comment
Пожалуйста, используйте английскую пунктуацию, когда пишете на английском языке.   -  person sawa    schedule 26.05.2016
comment
Вы проверили, что находится в @scope?   -  person kajal ojha    schedule 26.05.2016
comment
Что такое @scope? Что такое @tokens? Что такое s.singularize.camelcase.constantize? Что такое projects_to_search? Попробуйте воспроизвести ошибку самым простым способом.   -  person Tom Lord    schedule 26.05.2016


Ответы (2)


У меня была такая же проблема, я смог исправить ее, понизив версию моей версии ruby ​​& rails, рабочий набор:

  • Рельсы 3.2.19
  • Руби 2.1.4p265

Похоже, это связано с изменением торможения в ruby-2.3.0.

person Nementon    schedule 24.08.2016

Это действительно странно. Мы используем «Redmine» -2.0.3.1, и у нас нет такого поведения. Кажется, "кто-то" перепутал форму, связанную с поисковым вводом. Попробуйте следить за этими данными с момента нажатия Enter до тех пор, пока он не ответит вам кодом ошибки 500.

Если вы можете, измените среду разработки на разработку, таким образом, она покажет вам более подробные ошибки.

Но я больше ничем не могу вам помочь, вы не предоставили достаточно информации о проблеме.

person Ruben Barbosa    schedule 30.05.2016