2016-05-26 3 views
0

На redmine моей компании есть эта ошибка, когда я получаю внутреннюю ошибку, если я хочу выполнить поиск в проекте.«Неявное преобразование nil в String» в модуле поиска 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 

Интересно, что, когда я ищу только одну букву, я перенаправлен на страницу поиска, но я не h ave внутренняя ошибка.

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

Спасибо.

+1

Пожалуйста, используйте английскую пунктуацию, когда вы пишете на английском языке. – sawa

+0

Вы проверили, что находится в @scope? –

+0

Что такое '@ scope'? Что такое '@ tokens'? Что такое 's.singularize.camelcase.constantize'? Что такое 'projects_to_search'? Попытайтесь воссоздать ошибку самым простым способом. –

ответ

0

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

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

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

1

я тот же вопрос, я был в состоянии исправить это понижая мой рубиновый & рельсы версия, рабочий набор:

  • Rails 3.2.19
  • Рубин 2.1.4p265

Похоже, что это связано с изменением торможения в рубине 2.3.0.