2012-02-23 50 views
0

我無法弄清楚如何解決這個問題!請幫忙!!未定義的方法錯誤軌道3太陽黑子搜索

"undefined method `description' for nil:NilClass" 

結果與下面的代碼:

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

當我只能叫 「C」,而不是c.description結果是: 測試搜索:

" [#<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>]" 

我的控制器,其中我通過一組搜索參數循環搜索特定類別:

從軌調試

結果: --- - !!空 - !!空 - - 紅寶石/對象:Nmodel 屬性: 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 2012-02-23 05:12:16

回答

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中刪除它,這可能發生,特別是在開發中。

+0

感謝您的回覆。我檢查了開發數據庫...行確實存在。爲了好的措施,我還重新編制了太陽黑子...沒有變化 – rehcelf 2012-02-23 05:19:12

+0

問題出在我的循環中創建的數組。謝謝你的幫助。 – rehcelf 2012-02-23 05:48:40