2009-11-17 76 views
0

我希望看到一個比零以下嵌入的Ruby返回處理:預計尼爾斯

<%=h [@inventory.origin.code] %> 

它返回一個「NoMethodError無對象」。然而,當對象是實際存在時,其作用只是細(如預期)。

所以我創造了這個測試(以下this建議):「你有一個零對象時,你沒想到吧」

<b>origin_id:</b> 
    <% if (@inventory.origin.code.nil? or @inventory.origin.code == 0) %> 
    <%=h [@inventory.origin] %> 
    <% else %> 
    <%=h @inventory.origin.code %> 
    <% end %> 

意外軌回報NoMethodError

你在處理這種情況有什麼建議?謝謝!

回答

3

你都來不及加入.nil?檢查。我假設它是origin是零,不code或者你不會收到這個錯誤。使用這個來代替:

<%=h [@inventory.origin.code] unless @inventory.origin.nil? %> 
+0

甚至整潔會被使用,如果@ inventory.origin – 2009-11-17 09:07:33

1

重構dcneiner的回答:

<%=h [@inventory.origin.code] if @inventory.origin %>