2012-02-23 18 views
0

私はこの問題を解決する方法を見つけることができません!助けてください!!次のコードで未定義のメソッドエラーのレール3太陽黒点の検索

"undefined method `description' for nil:NilClass" 

結果:

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

Iのみ代わり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>]" 

マイコントローラ私は一連の検索パラメータをループして特定のカテゴリを検索します:

レールのデバッグから

結果: --- - !!ヌル - !!ヌル - - ルビー/オブジェクト:!Nmod​​el 属性: ID:44 名:!!ヌル 価格:!! 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 数量:!!ヌル

+0

Rails.loggerを使用して、Cの出力を確認したり、Ruby Debugを使用してみてください。 – ericraio

答えて

3

これはResults from rails debug: --- - <<<<!!null >>>>>- <<<<!!null>>>>> - - <<<<!ruby/object:Nmodel attributes: id: 44からです。それは2つの空のレコードと1つの有効なレコードを返します。

これを試してください。

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

1つの可能性...太陽黒点の検索では、もはやデータベースに存在しないオブジェクトのIDが返されます。これは、特に開発時に、オブジェクトを索引付けした後、Solrから削除せずにデータベースから行を削除した場合(dbを削除することによって)行なわれます。

+0

お返事ありがとうございます。私はdevのDBをチェック...行が存在する。良い測度のために私はまた、黒点を再インデックス化しました...変化なし – rehcelf

+0

問題は私のループで作成された配列にあります。ご協力いただきありがとうございます。 – rehcelf

関連する問題