2012-02-23 2 views
0

이 문제를 해결하는 방법을 알아낼 수 없습니다 !!! 도와주세요!! 다음 코드로정의되지 않은 메서드 오류 레일 3 흑점 검색

"undefined method `description' for nil:NilClass" 

결과 :

<ul>Test Search: 
    <% @optsolr.each do |c| %> 
     <li> 
    <%= c.description %> 
     </li> 
<% end %> 
</ul> 

난 단지 대신 c.description의 "C"를 호출 결과는 다음과 같습니다 테스트 검색 :

" [#<Nmodel id: 44, name: nil, price: nil, expiration: "2012-02-22", category: "Life ",  description: "my description text", user_id: 3, created_at: "2012-02-22 04:20:48", updated_at: "2012-02-22 04:20:48", quantity: nil>]" 

내 컨트롤러 일련의 검색 매개 변수를 반복하고 특정 카테고리를 검색합니다.

레일 디버그에서 07,583,210

결과 : --- - !! 널 - !! 널 - - 루비/객체 :! Nmodel 속성 : ID : 44 이름 :! 널 (null) 가격 : !! null 만료 : 2012-02-22 카테고리 :! '생명' 설명 : 내 설명 텍스트 USER_ID : 3 created_at : 2012-02-22 04 : 20 : 48.048506000Z updated_at : 2012-02-22 04 : 20 : 48.048506000Z 수량 :! 널 (null)

+0

Rails.logger를 사용하여 C의 출력을 확인하거나 Ruby Debug를 사용하십시오. – ericraio

답변

3

이건 Results from rails debug: --- - <<<<!!null >>>>>- <<<<!!null>>>>> - - <<<<!ruby/object:Nmodel attributes: id: 44입니다. 두 개의 빈 레코드와 하나의 유효한 레코드가 반환됩니다.

시도해보십시오.

<ul>Test Search:  
     <% @optsolr.delete_if{|ele| ele.blank?}.each do |c| %> 
      <li> 
     <%= c.description %> 
      </li> 
    <% end %> 
    </ul> 
0

하나의 가능성 ... 흑점 검색은 더 이상 데이터베이스에 존재하지 않는 개체의 ID를 반환합니다. 이것은 특히 개발 과정에서 개체를 인덱싱 한 다음 Solr에서 데이터베이스를 삭제하지 않고 데이터베이스에서 행을 삭제 한 경우 (아마도 db를 삭제하면) 발생할 수 있습니다.

+0

응답 해 주셔서 감사합니다. dev DB를 확인했습니다 ... 행이 존재합니다. 좋은 측정을 위해 나는 또한 흑점을 다시 색인했다 ... 변경 없음 – rehcelf

+0

문제는 내 루프에서 생성 된 배열에있다. 당신의 도움을 주셔서 감사합니다. – rehcelf

관련 문제