我希望看到使用以下嵌入式Ruby返回nil:
<%=h [@inventory.origin.code] %>
它返回“NoMethodError nil对象”。但是,当一个对象实际存在时,它的功能就好了(正如预期的那样)。
因此我创建了此测试(遵循this建议):
<b>origin_id:</b>
<% if (@inventory.origin.code.nil? or @inventory.origin.code == 0) %>
<%=h [@inventory.origin] %>
<% else %>
<%=h @inventory.origin.code %>
<% end %>
意外地rails返回 NoMethodError“当你没想到它时,你有一个nil对象!”
您对处理这种情况有什么建议吗?谢谢!
答案 0 :(得分:3)
您要添加.nil?
支票太晚了。我假设它是origin
是零,而不是code
或者你不会得到那个错误。请改用:
<%=h [@inventory.origin.code] unless @inventory.origin.nil? %>
答案 1 :(得分:1)
重申了dcneiner的回答:
<%=h [@inventory.origin.code] if @inventory.origin %>