我在这里有点困惑......当我这样做时(在视图中):
<% object = objects.where(:id => "xyz").take %>
<%= object %>
返回=> #<Object:0x007f455ef59dd0>
然后:
<%= object.id %>
会返回错误:
未定义的方法`id&#39;为零:NilClass
我必须错过一些东西(非常明显)? thnx提前帮忙。
答案 0 :(得分:3)
如果未找到记录,则take
方法返回nil,因此您没有“xyz”记录。
如果您不确定自己是否有对象,可以使用try
进行属性调用
object.try(:id)
如果找到对象,这将返回id
,如果对象为零,则返回nil(不引发异常)。