我有这个模型:
class Device < ActiveRecord::Base
has_many :events
def last_event
events.last
end
end
如您所见,我有一种方法可以获取设备的最后一个事件。现在,在设备模型的其他地方我有这个方法:
def place
self.last_event.place
end
现在,如果我在此设备的事件中没有任何记录,我会收到错误“nil:NilClass 的未定义方法 `place'”。
所以我补充说:
def place
self.last_event.place if self.last_event.present?
end
这种模式在整个应用程序中重复出现,我必须添加“if self.last_event.present?” 所以它也不会在其他地方崩溃。
我确信必须有更好的方法来处理这种事情,而无需检查 last_event 是否无处不在?
有什么建议么?
谢谢,