Ruby on rails 如何正确处理模型中的零?
我有一个方法链,在任何时候,其中一个可以根据返回的内容(集合)返回nil,然后该集合上的方法将爆炸,因为它是nil 我不知道如何妥善处理这些案件?我应该在每个函数中执行if语句并显式返回方法以停止执行,还是该怎么做Ruby on rails 如何正确处理模型中的零?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个方法链,在任何时候,其中一个可以根据返回的内容(集合)返回nil,然后该集合上的方法将爆炸,因为它是nil 我不知道如何妥善处理这些案件?我应该在每个函数中执行if语句并显式返回方法以停止执行,还是该怎么做 undefined method `created_at' for nil:NilClass # ./app/models/exercise.rb:132:in `last_placeholder_log_date' # ./app/models/exercise.rb:136:in
undefined method `created_at' for nil:NilClass
# ./app/models/exercise.rb:132:in `last_placeholder_log_date'
# ./app/models/exercise.rb:136:in `placeholder_log_entries'
# ./app/models/exercise.rb:140:in `placeholder_log_entries!'
def last_placeholder_log_date(user)
self.last_log_entry(user, true).created_at.beginning_of_day
end
如果没有最后一个日志条目,我如何优雅地处理这种可能性?您可以使用:
使用try
,可以确保在接收器未响应时不会引发异常。如果接收器没有响应,则呼叫返回nil
将代码写入:
def last_placeholder_log_date(user)
val = last_log_entry(user, true)
val.created_at.beginning_of_day unless val.nil?
end
def last_placeholder_log_date(user)
val = last_log_entry(user, true)
val.created_at.beginning_of_day unless val.nil?
end